Running prettier on markdown files. (#165)

* Running prettier on markdown files.

* Add prettier check to CI, and script.

* Forgot to add prettier

* Try to add testing repo.

* Address PR comments.
This commit is contained in:
Dessalines 2023-04-15 09:11:44 -04:00 committed by GitHub
parent ddf8f191da
commit 8ea712e8e4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
91 changed files with 1082 additions and 1000 deletions

View file

@ -1,10 +1,15 @@
clone:
git:
image: woodpeckerci/plugin-git
settings:
recursive: true
submodule_update_remote: true
pipeline:
fetch_git_submodules:
image: alpine/git
check_formatting:
image: alpine:3
commands:
- git submodule init
- git submodule update --recursive --remote
- apk add prettier --repository=https://dl-cdn.alpinelinux.org/alpine/edge/testing
- prettier -c src
check_documentation_build:
image: rust:1.61-slim-buster
commands:

View file

@ -35,3 +35,7 @@ mdbook serve
- We will merge a new language after it has been worked on regularly for at least a month, and at least some pages are finished.
- After merging, we will add a label for the language, to help organising issues and pull requests by language.
- The translator will also get maintainer rights in this repository, to allow managing contributions for their language.
## Formatting
To format your markdown files, install [prettier](https://prettier.io), then run `prettier -w src`

View file

@ -1,8 +1,8 @@
## Acerca del proyecto
Página de inicio|Página de publicación
---|---
![captura principal](main_screen.png)|![captura del chat](chat_screen.png)
| Página de inicio | Página de publicación |
| ------------------------------------- | ------------------------------------ |
| ![captura principal](main_screen.png) | ![captura del chat](chat_screen.png) |
[Lemmy](https://github.com/LemmyNet/lemmy) es similar a sitios como [Menéame](https://meneame.net), [Reddit](https://reddit.com), [Lobste.rs](https://lobste.rs), [Raddle](https://raddle.me), o [Hacker News](https://news.ycombinator.com/): te subscribes a los foros que te interesan, publicas enlaces y debates, luego votas y comentas en ellos. Entre bastidores, es muy diferente; cualquiera puede gestionar fácilmente un servidor, y todos estos servidores son federados (piensa en el correo electrónico), y conectados al mismo universo, llamado [Fediverso](https://es.wikipedia.org/wiki/Fediverso).
@ -17,7 +17,7 @@ Cada servidor lemmy puede establecer su propia política de moderación; nombran
### ¿Por qué se llama Lemmy?
- Cantante principal de [Motörhead](https://invidio.us/watch?v=pWB5JZRGl0U).
- El [videojuego de la vieja escuela](<https://es.wikipedia.org/wiki/Lemmings>).
- El [videojuego de la vieja escuela](https://es.wikipedia.org/wiki/Lemmings).
- El [Koopa de Super Mario](https://www.mariowiki.com/Lemmy_Koopa).
- Los [roedores peludos](http://sunchild.fpwc.org/lemming-the-little-giant-of-the-north/).

View file

@ -10,9 +10,9 @@
- Puntuaciones completas de los votos `(+/-)` como en el antiguo reddit.
- Temas, incluidos los claros, los oscuros, y los solarizados.
- Emojis con soporte de autocompletado. Empieza tecleando `:`
- *Ejemplo* `miau :cat:` => `miau 🐈`
- _Ejemplo_ `miau :cat:` => `miau 🐈`
- Etiquetado de Usuarios con `@`, etiquetado de Comunidades con `!`.
- *Ejemplo* `@miguel@lemmy.ml me invitó a la comunidad !gaming@lemmy.ml`
- _Ejemplo_ `@miguel@lemmy.ml me invitó a la comunidad !gaming@lemmy.ml`
- Carga de imágenes integrada tanto en las publicaciones como en los comentarios.
- Una publicación puede consistir en un título y cualquier combinación de texto propio, una URL o nada más.
- Notificaciones, sobre las respuestas a los comentarios y cuando te etiquetan.

View file

@ -1,6 +1,6 @@
# Metas
*Esta sección contiene ideas y recursos del equipo que desarrolla Lemmy*. **Parecido a un bloc de notas**
_Esta sección contiene ideas y recursos del equipo que desarrolla Lemmy_. **Parecido a un bloc de notas**
- Piensa en un nombre / nombre clave.
- Debe tener comunidades.

View file

@ -7,6 +7,7 @@
<iframe id='ivplayer' width='640' height='360' src='https://invidious.xyz/embed/5axSUJj0bBY' style='border:none;'></iframe>
## Comandos Útiles
Empieza tecleando...
- `@nombre_usuario` para obtener una lista de nombres de usuario.
@ -15,16 +16,16 @@ Empieza tecleando...
## Clasificación
*Se aplica tanto a las publicaciones como a los comentarios.*
_Se aplica tanto a las publicaciones como a los comentarios._
Tipo | Descripción
--- | ---
Activo | Tendencias ordenadas en base a la puntuación, y la hora del comentario mas reciente.
Popular | Tendencias ordenadas en base a la puntuación, y la hora de creación de la publicación.
Nuevo | Las publicaciones más nuevas.
Más comentados | Las publicaciones con más comentarios.
Nuevos comentarios | Las publicaciones con los comentarios más recientes, es decir un ordenamiento tipo foro.
Top | Las publicaciones con mayor puntuación en el periodo de dado.
| Tipo | Descripción |
| ------------------ | ---------------------------------------------------------------------------------------- |
| Activo | Tendencias ordenadas en base a la puntuación, y la hora del comentario mas reciente. |
| Popular | Tendencias ordenadas en base a la puntuación, y la hora de creación de la publicación. |
| Nuevo | Las publicaciones más nuevas. |
| Más comentados | Las publicaciones con más comentarios. |
| Nuevos comentarios | Las publicaciones con los comentarios más recientes, es decir un ordenamiento tipo foro. |
| Top | Las publicaciones con mayor puntuación en el periodo de dado. |
Para más detalles, revisa el [Apartado de la Clasificación de las publicaciones y los comentarios](ranking.md).
@ -44,23 +45,22 @@ Todas las acciones de los administradores en las comunidades se realizan en la b
Enriquece todas tus publicaciones / comentarios aplicando el formato Markdown para que el texto no se vea tan aburrido.
Tipo | O | … para obtener
--- | --- | ---
\*Italica\* | \_Italica\_ | _Italica_
\*\*Negrita\*\* | \_\_Negrita\_\_ | **Negrita**
\# Titulo 1 | Titulo 1 <br> ========= | <h4>Titulo 1</h4>
\## Titulo 2 | Titulo 2 <br>--------- | <h5>Titulo 2</h5>
\[enlace\](http://a.com) | \[enlace\]\[1\]<br><br>\[1\]: http://b.org | [enlace](https://commonmark.org/)
!\[Imagen\](http://url/a.png) | !\[Imagen\]\[1\]<br><br>\[1\]: http://url/b.jpg | ![Markdown](https://commonmark.org/help/images/favicon.png)
\> Cita en bloque | | <blockquote>Cita en bloque</blockquote>
\* Lista <br>\* Lista <br>\* Lista | \- Lista <br>\- Lista <br>\- Lista <br> | * Lista <br>* Lista <br>* Lista <br>
1\. Uno <br>2\. Dos <br>3\. Tres | 1) Uno<br>2) Dos<br>3) Tres | 1. Uno<br>2. Dos<br>3. Tres
Línea Horizontal <br>\--- | Línea Horizontal<br>\*\*\* | Línea Horizontal <br><hr>
\`Código en línea\` con acento grave | |`Código en línea` con acento grave
\`\`\`<br>\# Bloque de código <br>print '3 acentos graves o'<br>print 'indentar 4 espacios' <br>\`\`\` | ····\# Bloque de código<br>····print '3 acentos graves o'<br>····print 'indentar 4 espacios' | \# Bloque de código <br>print '3 acentos graves o'<br>print 'indentar 4 espacios'
::: spoiler o nsfw oculto <br>*mucho spoiler aquí*<br>::: | | <details><summary> spoiler o nsfw oculto </summary><p><em>mucho spoiler aquí</em></p></details>
Texto de ~subíndice~ | | Texto de <sub>subíndice</sub>
Texto de ^superíndice^ | | Texto de <sup>superíndice</sup>
| Tipo | O | … para obtener |
| ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| \*Italica\* | \_Italica\_ | _Italica_ |
| \*\*Negrita\*\* | \_\_Negrita\_\_ | **Negrita** |
| \# Titulo 1 | Titulo 1 <br> ========= | <h4>Titulo 1</h4> |
| \## Titulo 2 | Titulo 2 <br>--------- | <h5>Titulo 2</h5> |
| \[enlace\](http://a.com) | \[enlace\]\[1\]<br><br>\[1\]: http://b.org | [enlace](https://commonmark.org/) |
| !\[Imagen\](http://url/a.png) | !\[Imagen\]\[1\]<br><br>\[1\]: http://url/b.jpg | ![Markdown](https://commonmark.org/help/images/favicon.png) |
| \> Cita en bloque | | <blockquote>Cita en bloque</blockquote> |
| \* Lista <br>\* Lista <br>\* Lista | \- Lista <br>\- Lista <br>\- Lista <br> | _ Lista <br>_ Lista <br>\* Lista <br> |
| 1\. Uno <br>2\. Dos <br>3\. Tres | 1) Uno<br>2) Dos<br>3) Tres | 1. Uno<br>2. Dos<br>3. Tres |
| Línea Horizontal <br>\--- | Línea Horizontal<br>\*\*\* | Línea Horizontal <br><hr> |
| \`Código en línea\` con acento grave | | `Código en línea` con acento grave |
| \`\`\`<br>\# Bloque de código <br>print '3 acentos graves o'<br>print 'indentar 4 espacios' <br>\`\`\` | ····\# Bloque de código<br>····print '3 acentos graves o'<br>····print 'indentar 4 espacios' | \# Bloque de código <br>print '3 acentos graves o'<br>print 'indentar 4 espacios' |
| ::: spoiler o nsfw oculto <br>_mucho spoiler aquí_<br>::: | | <details><summary> spoiler o nsfw oculto </summary><p><em>mucho spoiler aquí</em></p></details> |
| Texto de ~subíndice~ | | Texto de <sub>subíndice</sub> |
| Texto de ^superíndice^ | | Texto de <sup>superíndice</sup> |
[Tutorial de CommonMark](https://commonmark.org/help/tutorial/)

View file

@ -27,6 +27,7 @@ Score = Upvotes - Downvotes
Time = time since submission (in hours)
Gravity = Decay gravity, 1.8 is default
```
- Lemmy utiliza el mismo algoritmo `Rank` anterior, en dos tipos: `Active` y `Hot`.
- El algoritmo "activo" utiliza los votos de las publicaciones y el tiempo de los últimos comentarios (limitado a dos días).
- `Hot` utiliza los votos de las publicaciones, y la hora de publicación de los mismos.
@ -41,6 +42,6 @@ Un gráfico del rango a lo largo de 24 horas, de puntuaciones de 1, 5, 10, 100,
#### Conteo de usuarios activos
Lemmy también muestra el conteo de *usuarios activos* de tu sitio y sus comunidades. Estos se cuentan en el último día `day`, semana `week`, mes `month` y medio año `half year`, almacenándose en caché al iniciar Lemmy, y cada hora.
Lemmy también muestra el conteo de _usuarios activos_ de tu sitio y sus comunidades. Estos se cuentan en el último día `day`, semana `week`, mes `month` y medio año `half year`, almacenándose en caché al iniciar Lemmy, y cada hora.
Un usuario activo es alguien que ha publicado o comentado en nuestra instancia o comunidad en el último periodo de tiempo. Para el conteo de sitios, sólo se cuentan los usuarios locales. Para los conteos de la comunidad, se incluyen los usuarios federados.

View file

@ -3,17 +3,21 @@
Información para administradores de las instancias de Lemmy, y para aquellos que quieran gestionar un servidor.
## Instalación
### Métodos oficiales/soportados
Lemmy tiene dos métodos principales de instalación:
- [Manual con Docker](install_docker.md)
- [Automatizado con Ansible](install_ansible.md).
Recomendamos usar Ansible, porque simplifica la instalación y también facilita la actualización.
### Otros métodos de instalación
> ⚠️ **Bajo tu propio riesgo.**
En algunos casos, puede ser necesario utilizar diferentes métodos de instalación. Pero no los recomendamos y no podemos dar soporte para ellos.
- [Instalar desde Cero](from_scratch.md)
- [En Amazon Web Services (AWS)](on_aws.md)

View file

@ -11,6 +11,7 @@ Para hacer una copia de seguridad incremental de una base de datos en archivo `.
```bash
docker-compose exec postgres pg_dumpall -c -U lemmy > lemmy_dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql
```
### Un ejemplo de script de copia de seguridad
```bash
@ -74,5 +75,3 @@ update community set shared_inbox_url = replace (shared_inbox_url, 'old_domain',
## Más recursos
- https://stackoverflow.com/questions/24718706/backup-restore-a-dockerized-postgresql-database

View file

@ -19,7 +19,7 @@ Tuve que cambiar de usar `sudo` a `su` en algunos lugares ya que el usuario esta
## Configuración
| Dependencias | |
|------------------------------|-------------------------------------------|
| ------------ | ----------------------------------------- |
| app-admin | sudo |
| dev-vcs | [git](https://git-scm.com/) |
| dev-lang | [rust](https://www.rust-lang.org/) |
@ -29,7 +29,6 @@ Tuve que cambiar de usar `sudo` a `su` en algunos lugares ya que el usuario esta
| app-shells | bash-completion |
| | |
### Poner en marcha el postgresql
```bash
@ -149,7 +148,7 @@ echo "*/* -llvm_targets_NVPTX -llvm_targets_AMDGPU" >> /etc/portage/package.use
Instalar paquetes extra requeridos para pict-rs:
| Paquetes | |
|-------------|--------------------------------------------------|
| ----------- | ------------------------------------------------ |
| media-libs | [gexiv2](https://gitlab.gnome.org/GNOME/gexiv2) |
| media-gfx | [imagemagick](https://imagemagick.org/index.php) |
| media-video | [ffmpeg](https://ffmpeg.org/) |
@ -158,7 +157,7 @@ Instalar paquetes extra requeridos para pict-rs:
Paquetes requeridos para pict-rs (en caso de un sistema separado):
| Paquetes | |
|----------|------------------------------------|
| -------- | ---------------------------------- |
| dev-lang | [rust](https://www.rust-lang.org/) |
**Opcional** Hacer un script o ejecutarlo manualmente como usuario.
@ -178,7 +177,7 @@ mkdir pictrs-data
**Falta algo en el README de pict-rs - creó y utilaza una carpeta pict-rs in /tmp**
Si haces algo raro como yo (cambiar el usuario con el que se ejecuta pict-rs) y terminas con problemas de permisos (que los registros no te dicen *Qué* está teniendo un problema de permisos), este podría ser tu problema. Además, el tiempo dirá si esta carpeta se limpia adecuadamente o no.
Si haces algo raro como yo (cambiar el usuario con el que se ejecuta pict-rs) y terminas con problemas de permisos (que los registros no te dicen _Qué_ está teniendo un problema de permisos), este podría ser tu problema. Además, el tiempo dirá si esta carpeta se limpia adecuadamente o no.
Ejecutar pictrs de acuerdo a la siguiente línea:
@ -190,7 +189,6 @@ Pero sólo usaremos el script init.
En este punto, corre todo a través de los [scripts de inicio](#scripts-de-inicio-init-scripts). Configura los scripts de inicio para que se ejecuten en el tiempo de arranque. Presumiblemente has configurado nginx y puedes llegar a tu instancia.
---
## Actualizando
@ -391,4 +389,3 @@ stop() {
eend $?
}
```

View file

@ -18,6 +18,7 @@ ansible-playbook lemmy.yml --become
```
Para actualizar a una nueva versión, simplemente ejecuta lo siguiente en tu repo local de Lemmy:
```bash
git pull origin main
cd ansible

View file

@ -8,21 +8,21 @@ Contiene las definiciones de infraestructura necesarias para desplegar [Lemmy](h
### Incluye:
* ECS fargate cluster
* Lemmy-UI
* Lemmy
* Pictrs
* IFramely
* CloudFront CDN
* Almacenamiento EFS para subir imágenes.
* Aurora Serverless Postgres DB
* Bastion VPC host
* Balanceadores de carga para Lemmy y IFramely
* Registros DNS para tu sitio.
- ECS fargate cluster
- Lemmy-UI
- Lemmy
- Pictrs
- IFramely
- CloudFront CDN
- Almacenamiento EFS para subir imágenes.
- Aurora Serverless Postgres DB
- Bastion VPC host
- Balanceadores de carga para Lemmy y IFramely
- Registros DNS para tu sitio.
## Inicio rápido
Clona el [Lemmy-CDK]( https://github.com/jetbridge/lemmy-cdk).
Clona el [Lemmy-CDK](https://github.com/jetbridge/lemmy-cdk).
Clona [Lemmy](https://github.com/LemmyNet/lemmy) y [Lemmy-UI](https://github.com/LemmyNet/lemmy-ui) en el directorio de arriba.
@ -41,13 +41,14 @@ cdk deploy
```
## Coste
Esta *no* es la forma más barata de ejecutar Lemmy. La base de datos sin servidor (serverless) Aurora puede costarte ~$90/mes (en dólares) si no duerme.
Esta _no_ es la forma más barata de ejecutar Lemmy. La base de datos sin servidor (serverless) Aurora puede costarte ~$90/mes (en dólares) si no duerme.
## Comandos del CDK útiles
* `npm run build` compila typescript a js
* `npm run watch` vigila los cambios y compila
* `npm run test` realiza las pruebas unitarias de jest
* `cdk deploy` despliega esta pila en tu cuenta/región de AWS por defecto
* `cdk diff` compara la pila desplegada con el estado actual
* `cdk synth` emite la plantilla de CloudFormation sintetizada
- `npm run build` compila typescript a js
- `npm run watch` vigila los cambios y compila
- `npm run test` realiza las pruebas unitarias de jest
- `cdk deploy` despliega esta pila en tu cuenta/región de AWS por defecto
- `cdk diff` compara la pila desplegada con el estado actual
- `cdk synth` emite la plantilla de CloudFormation sintetizada

View file

@ -39,6 +39,7 @@ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
### Otras instancias no pueden obtener objetos locales (comunidad, publicaciones, etc)
Tu proxy reverso (ejemplo nginx) necesita reenviar las solicitudes con la cabecera `Accept: application/activity+json` al backend. Esto es manejado por las siguientes líneas:
```
set $proxpass "http://0.0.0.0:{{ lemmy_ui_port }}";
if ($http_accept = "application/activity+json") {
@ -51,12 +52,14 @@ proxy_pass $proxpass;
```
Puedes probar que funciona correctamente ejecutando los siguientes comandos, todos ellos deberían devolver JSON válido:
```
curl -H "Accept: application/activity+json" https://your-instance.com/u/some-local-user
curl -H "Accept: application/activity+json" https://your-instance.com/c/some-local-community
curl -H "Accept: application/activity+json" https://your-instance.com/post/123 # the id of a local post
curl -H "Accept: application/activity+json" https://your-instance.com/comment/123 # the id of a local comment
```
### La obtención de objetos remotos funciona, pero publicar/comentar en comunidades remotas falla
Comprueba que la [federación está permitida en ambas instancias](../federation/administration.md#instance-allowlist-and-blocklist).

View file

@ -1,6 +1,7 @@
# Referencia de la API
Lemmy tiene dos APIs entrelazadas:
- [WebSocket](https://join-lemmy.org/api/index.html)
- [HTTP](http_api.md)
@ -10,8 +11,8 @@ Esta página describe conceptos que son comúnes para ambas.
- [Uso básico](#uso-básico)
- [Tipos de datos](#tipos-de-datos)
* [Tipos de Lemmy](#tipos-de-lemmy)
* [Tipos de bajo nivel](#tipos-de-bajo-nivel)
- [Tipos de Lemmy](#tipos-de-lemmy)
- [Tipos de bajo nivel](#tipos-de-bajo-nivel)
- [Límites de tarifa por defecto](#límites-de-tarifa-por-defecto)
<!-- tocstop -->
@ -31,8 +32,8 @@ Las cadenas de solicitud `request` y respuesta `response` están en [formato JSO
### Tipos de bajo nivel
- `?` designa una opción que puede omitirse en las solicitudes y no estar presenet en las respuestas. Será de tipo ***SomeType*** (AlgúnTipo).
- `[SomeType]` es una lista que contiene objetos del tipo ***SomeType***.
- `?` designa una opción que puede omitirse en las solicitudes y no estar presenet en las respuestas. Será de tipo **_SomeType_** (AlgúnTipo).
- `[SomeType]` es una lista que contiene objetos del tipo **_SomeType_**.
- Las horas (times) y fechas (dates) son cadenas de marcas de tiempo (timestamp) en formato [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). Timestamps serán UTC, tú cliente debe hacer la conversión de UTC a local.
## Límites de tasa por defecto

View file

@ -45,17 +45,17 @@ Lemmy limita la tasa de muchas acciones en función de la IP del cliente. Pero s
Aquí hay un ejemplo recortado para NodeJS:
```javascript
function setForwardedHeaders(
headers: IncomingHttpHeaders
): { [key: string]: string } {
function setForwardedHeaders(headers: IncomingHttpHeaders): {
[key: string]: string,
} {
let out = {
host: headers.host,
};
if (headers['x-real-ip']) {
out['x-real-ip'] = headers['x-real-ip'];
if (headers["x-real-ip"]) {
out["x-real-ip"] = headers["x-real-ip"];
}
if (headers['x-forwarded-for']) {
out['x-forwarded-for'] = headers['x-forwarded-for'];
if (headers["x-forwarded-for"]) {
out["x-forwarded-for"] = headers["x-forwarded-for"];
}
return out;

View file

@ -1,25 +1,26 @@
# API HTTP de Lemmy
<!-- toc -->
- [Websocket vs API HTTP](#websocket-vs-api-http)
- [Ejemplos](#ejemplos)
* [TypeScript](#typescript)
* [Curl](#curl)
+ [GET](#ejemplo-get)
+ [POST](#ejemplo-post)
- [TypeScript](#typescript)
- [Curl](#curl)
- [GET](#ejemplo-get)
- [POST](#ejemplo-post)
- [Características exclusivas de la API HTTP](#características-exclusivas-de-la-api-http)
* [RSS/Atom feeds](#rss-atom-feeds)
* [Imagenes](#imagenes)
+ [Crear (request)](#crear-request)
+ [Crear (response)](#crear-response)
- [RSS/Atom feeds](#rss-atom-feeds)
- [Imagenes](#imagenes)
- [Crear (request)](#crear-request)
- [Crear (response)](#crear-response)
* [Delete](#delete)
<!-- tocstop -->
## WebSocket vs API HTTP
La API HTTP de Lemmy es casi parecida a la API del Websocket:
- **API WebSocket** necesita `let send = { op: userOperation[op], data: form}` como se muestra en [la especificación de la API WebSocket](https://join-lemmy.org/api/index.html)
- **API HTTP** necesita el formulario (datos) en el primer nivel; una operación HTTP (GET, PUT o POST) y endpoint (en `http(s)://host/api/v2/endpoint`). Por ejemplo:
@ -41,7 +42,7 @@ Para más información. Véase el archivo
```
| Tipo | URL | Tipo de cuerpo | Tipo de Retorno |
| --- | --- | --- | --- |
| ----- | ---------- | -------------- | ----------------- |
| `PUT` | `/comment` | `EditComment` | `CommentResponse` |
### Curl
@ -85,7 +86,7 @@ Leemy reenvía las peticiones de imagenes a un Pictrs que se ejecuta localmenet.
`GET /pictrs/image/{filename}?format={webp, jpg, ...}&thumbnail={96}`
*El formato (format) y la miniatura (thumbnail) son opcionales*
_El formato (format) y la miniatura (thumbnail) son opcionales_
#### Crear (request)
@ -113,7 +114,6 @@ Uploaded content must be valid multipart/form-data with an image array located w
`GET /pictrs/image/delete/{delete_token}/{file}`
# Nota
Esta documentación puede tener un retraso con respecto a la actual

View file

@ -8,12 +8,12 @@ Lemmy usa [Bootstrap v4](https://getbootstrap.com/), y algunas clases css custom
## Prueba
- Para probar el tema, puedes también usar las herramientas del navegador web, o un plugin como *stylus* para copiar/pegar un tema, y verlo en Lemmy.
- Para probar el tema, puedes también usar las herramientas del navegador web, o un plugin como _stylus_ para copiar/pegar un tema, y verlo en Lemmy.
## Subir / Publicar
1. Haz un *fork* de [lemmy-ui](https://github.com/LemmyNet/lemmy-ui).
1. Haz un _fork_ de [lemmy-ui](https://github.com/LemmyNet/lemmy-ui).
1. Copia el archivo `{nombre-de-mi-tema}.min.css` a la carpeta `src/assets/css/themes`. (Aquí puedes copiar el archivo `_variables.scss` si lo deseas).
1. Abre el archivo `src/shared/utils.ts` y agregas `{nombre-de-mi-tema}` a la lista de temas.
1. Pruebalo localmente
1. Haz *pull request* con los cambios que hiciste.
1. Haz _pull request_ con los cambios que hiciste.

View file

@ -1,2 +1,3 @@
# API del WebSocket
[Documentación de la API del WebSocket de Lemmy](https://join-lemmy.org/api/index.html)

View file

@ -24,7 +24,7 @@ Mira el [Weblate de Lemmy](https://weblate.yerbamate.ml/projects/lemmy/) para l
### Back end
- El back end está escrito en `rust`, usando `diesel`, y `actix`.
- El código fuente del servidor está divido en secciones *main* in `src`. Estos incluyen:
- El código fuente del servidor está divido en secciones _main_ in `src`. Estos incluyen:
- `db` - Las acciones de bajo nivel de la base de datos.
- Las adiciones a la base de datos se realizan mediante migraciones. Ejecuta `diesel migration generate xxxxx` para añadir cosas nuevas.
- `api` - Las iteracciones de alto nivel del usuario (cosas como `CreateComment`)

View file

@ -30,6 +30,7 @@ Finalmente abre la siguiente dirección en tu navegador: `http://localhost:1235`
**Nota:** muchas características (como docs e imagenes) no funcionarán sin usar un perfil de nginx como en `ansible/templates/nginx.conf`.
Para acelerar la compilación de Docker, añade el siguiente código a `/etc/docker/daemon.json` y reinicia Docker.
```
{
"features": {

View file

@ -11,18 +11,19 @@ cd docker/federation
Las pruebas de federación establecen 5 instancias:
Instancia | Nombre de usuario | Localización | Notas
--- | --- | --- | ---
lemmy-alpha | lemmy_alpha | [127.0.0.1:8540](http://127.0.0.1:8540) | federada con todas las demás instancias
lemmy-beta | lemmy_beta | [127.0.0.1:8550](http://127.0.0.1:8550) | federada con todas las demás instancias
lemmy-gamma | lemmy_gamma | [127.0.0.1:8560](http://127.0.0.1:8560) | federada con todas las demás instancias
lemmy-delta | lemmy_delta | [127.0.0.1:8570](http://127.0.0.1:8570) | solo permite federación con lemmy-beta
lemmy-epsilon | lemmy_epsilon | [127.0.0.1:8580](http://127.0.0.1:8580) | usa la lista de bloqueo, tiene lemmy-alpha bloqueada
| Instancia | Nombre de usuario | Localización | Notas |
| ------------- | ----------------- | --------------------------------------- | ---------------------------------------------------- |
| lemmy-alpha | lemmy_alpha | [127.0.0.1:8540](http://127.0.0.1:8540) | federada con todas las demás instancias |
| lemmy-beta | lemmy_beta | [127.0.0.1:8550](http://127.0.0.1:8550) | federada con todas las demás instancias |
| lemmy-gamma | lemmy_gamma | [127.0.0.1:8560](http://127.0.0.1:8560) | federada con todas las demás instancias |
| lemmy-delta | lemmy_delta | [127.0.0.1:8570](http://127.0.0.1:8570) | solo permite federación con lemmy-beta |
| lemmy-epsilon | lemmy_epsilon | [127.0.0.1:8580](http://127.0.0.1:8580) | usa la lista de bloqueo, tiene lemmy-alpha bloqueada |
Puedes registrarte en cada una usando el nombre de la instancia, y `lemmy` como la contraseña, ejemplo: (`lemmy_alpha`, `lemmy`).
Para iniciar la federación entre instancias, visita una de ellas y busca un
usuario, comunidad o publicación, como en este ejemplo. Nota que el backend de Lemmy se ejecuta en un puerto diferente al del frontend, por lo que tienes que incrementar en uno el número de puerto de la barra de URL.
- `!main@lemmy-alpha:8541`
- `http://lemmy-beta:8551/post/3`
- `@lemmy-gamma@lemmy-gamma:8561`
@ -59,4 +60,4 @@ sudo docker-compose up -d
- check_is_apub_valid : Asegura que está en nuestra lista de instancias permitidas
- Comprobaciones de nivel inferior: Para asegurarse de que el usuario que crea/actualiza/elimina una publicación está realmente en la misma instancia que esa publicación
Para el último punto, ten en cuenta que *no* estamos comprobando si el actor que envía la actividad de creación para una publicación es realmente idéntico al creador de la publicación, o si el usuario que elimina una entrada es un mod/admin. Estas cosas se comprueban por el código de la API, y es responsabilidad de cada instancia comprobar los permisos de los usuarios. Esto no deja ningún vector de ataque, ya que un usuario normal de la instancia no puede realizar acciones que violen las reglas de la API. El único que podría hacerlo es el administrador (y el software desplegado por el administrador). Pero el administrador puede hacer cualquier cosa en la instancia, incluso enviar actividades desde otras cuentas de usuario. Así que en realidad no ganaríamos nada de seguridad comprobando los permisos de los mods o similares.
Para el último punto, ten en cuenta que _no_ estamos comprobando si el actor que envía la actividad de creación para una publicación es realmente idéntico al creador de la publicación, o si el usuario que elimina una entrada es un mod/admin. Estas cosas se comprueban por el código de la API, y es responsabilidad de cada instancia comprobar los permisos de los usuarios. Esto no deja ningún vector de ataque, ya que un usuario normal de la instancia no puede realizar acciones que violen las reglas de la API. El único que podría hacerlo es el administrador (y el software desplegado por el administrador). Pero el administrador puede hacer cualquier cosa en la instancia, incluso enviar actividades desde otras cuentas de usuario. Así que en realidad no ganaríamos nada de seguridad comprobando los permisos de los mods o similares.

View file

@ -1,9 +1,11 @@
# Desarrollo Local
### Instalar requisitos
Instala Rust utilizando [la opción recomendada en rust-lang.org](https://www.rust-lang.org/tools/install) (rustup).
#### Distro basada en Debian
```
sudo apt install git cargo libssl-dev pkg-config libpq-dev yarn curl gnupg2 espeak
# install yarn
@ -13,6 +15,7 @@ sudo apt update && sudo apt install yarn
```
#### Distro basada en Arch
```
sudo pacman -S git cargo libssl-dev pkg-config libpq-dev yarn curl gnupg2 espeak
# install yarn (stable)
@ -20,6 +23,7 @@ curl -o- -L https://yarnpkg.com/install.sh | bash
```
#### macOS
Instala [Homebrew](https://brew.sh/) si aún no lo has instalado.
Finalmente, instala Node y Yarn.
@ -29,6 +33,7 @@ brew install node yarn
```
### Obtener el código fuente del back end
```
git clone https://github.com/LemmyNet/lemmy.git
# or alternatively from gitea
@ -36,18 +41,22 @@ git clone https://github.com/LemmyNet/lemmy.git
```
### Compila el backend (Rust)
```
cargo build
# para desarrollo, usa `cargo check` en su lugar)
```
### Obtener el código fuente del front end
```
git clone https://github.com/LemmyNet/lemmy-ui.git --recurse-submodules
```
### Configurar postgresql
#### Distro basada en Debian
```
sudo apt install postgresql
sudo systemctl start postgresql
@ -59,6 +68,7 @@ export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
```
#### Distro basada en Arch
```
sudo pacman -S postgresql
sudo systemctl start postgresql
@ -70,6 +80,7 @@ export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
```
#### macOS
```
brew install postgresql
brew services start postgresql
@ -82,6 +93,7 @@ export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
```
### Ejecutar una instancia de desarrollo local
```
cd lemmy
cargo run

View file

@ -25,4 +25,4 @@ By default, both `allowed_instances` and `blocked_instances` values are empty, w
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.
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.

View file

@ -1,2 +1 @@
# Federación

View file

@ -16,36 +16,36 @@ En las siguientes tablas, "obligatorio" se refiere a si Lemmy aceptará o no una
- [Contexto](#context)
- [Actores](#actors)
* [Comunidad](#community)
+ [Bandeja de salida de la Comunidad](#community-outbox)
+ [Seguidores de la Comunidad](#community-followers)
+ [Moderadores de la Comunidad](#community-moderators)
* [Usuario](#user)
+ [Bandeja de salida del Usuario](#user-outbox)
- [Comunidad](#community)
- [Bandeja de salida de la Comunidad](#community-outbox)
- [Seguidores de la Comunidad](#community-followers)
- [Moderadores de la Comunidad](#community-moderators)
- [Usuario](#user)
- [Bandeja de salida del Usuario](#user-outbox)
- [Objectos](#objects)
* [Publicación](#post)
* [Comentario](#comment)
* [Mensaje privado](#private-message)
- [Publicación](#post)
- [Comentario](#comment)
- [Mensaje privado](#private-message)
- [Actividades](#activities)
* [Usuario a Comunidad](#user-to-community)
+ [Seguir](#follow)
+ [Dejar de seguir](#unfollow)
+ [Crear o Actualizar Publicación](#create-or-update-post)
+ [Crear o Actualizar Comentario](#create-or-update-comment)
+ [Me gusta Publicación o Comentario](#like-post-or-comment)
+ [No me gusta Publicación o Comentario](#dislike-post-or-comment)
+ [Eliminar Publicación o Comentario](#delete-post-or-comment)
+ [Remover Publicación o Comentario](#remove-post-or-comment)
+ [Deshacer](#undo)
* [Comunidad a Usuario](#community-to-user)
+ [Aceptar Seguir](#accept-follow)
+ [Anunciar](#announce)
+ [Remover o Eliminar Comunidad](#remove-or-delete-community)
+ [Restaurar Comunidad Removida o Eliminada](#restore-removed-or-deleted-community)
* [Usuario a Usuario](#user-to-user)
+ [Crear o Actualizar Mensaje Privado](#create-or-update-private-message)
+ [Eliminar Mensaje Privado](#delete-private-message)
+ [Deshacer la Eliminación del Mensaje Privado](#undo-delete-private-message)⏎
- [Usuario a Comunidad](#user-to-community)
- [Seguir](#follow)
- [Dejar de seguir](#unfollow)
- [Crear o Actualizar Publicación](#create-or-update-post)
- [Crear o Actualizar Comentario](#create-or-update-comment)
- [Me gusta Publicación o Comentario](#like-post-or-comment)
- [No me gusta Publicación o Comentario](#dislike-post-or-comment)
- [Eliminar Publicación o Comentario](#delete-post-or-comment)
- [Remover Publicación o Comentario](#remove-post-or-comment)
- [Deshacer](#undo)
- [Comunidad a Usuario](#community-to-user)
- [Aceptar Seguir](#accept-follow)
- [Anunciar](#announce)
- [Remover o Eliminar Comunidad](#remove-or-delete-community)
- [Restaurar Comunidad Removida o Eliminada](#restore-removed-or-deleted-community)
- [Usuario a Usuario](#user-to-user)
- [Crear o Actualizar Mensaje Privado](#create-or-update-private-message)
- [Eliminar Mensaje Privado](#delete-private-message)
- [Deshacer la Eliminación del Mensaje Privado](#undo-delete-private-message)⏎
<!-- tocstop -->
@ -123,7 +123,7 @@ Recibe actividades del usuario: Seguir `Follow`, Deshacer/Seguir `Undo/Follow`,
```
| Nombre del Campo | Obligatorio | Descripción |
|---|---|---|
| ------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `preferredUsername` | si | Nombre del actor |
| `name` | si | Titulo de la comunidad |
| `sensitive` | si | True indica que todas las publicaciones en la comunidad son nsfw |
@ -229,7 +229,7 @@ Envía y recibe actividades de/para otros usuarios: Crear/Nota `Create/Note`, Ac
```
| Nombre del Campo | Obligatorio | Descripción |
|---|---|---|
| ------------------- | ----------- | ------------------------------------------------------------------ |
| `preferredUsername` | si | Nombre del actor |
| `name` | no | El nombre para mostrar del usuario |
| `content` | no | La biografía del usuario |
@ -292,7 +292,7 @@ Una página con título, y contenido opcional de URL y texto. La URL suele lleva
```
| Nombre del Campo | Obligatorio | Description |
|---|---|---|
| ----------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------- |
| `attributedTo` | si | ID del usuario que creó esta publicación |
| `to` | si | ID de la comunidad en la que se publicó |
| `name` | si | Título de la publicación |
@ -332,7 +332,7 @@ Una respuesta a una publicación, o una respuesta a otro comentario. Contiene s
```
| Nombre del Campo | Obligatorio | Descripción |
|---|---|---|
| ---------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `attributedTo` | si | ID del usuario que creó el comentario |
| `to` | si | Comunidad donde se hizo el comentario |
| `content` | si | El texto del comentario |
@ -361,10 +361,11 @@ Un mensaje directo de un usuario a otro. No puede incluir usuarios adicionales.
"updated": "2020-10-08T20:13:52.547156+00:00"
}
```
<!-- Fix table in english version --->
| Nombre del Campo | Obligatorio | Descripción |
|---|---|---|
| ---------------- | ----------- | ---------------------------------------------------------------------------- |
| `attributedTo` | | ID del usuario que creo este mensaje |
| `to` | | ID del destinatario |
| `content` | si | El texto del mensaje privado |
@ -391,7 +392,7 @@ Cuando el usuario hace clic en "Suscribirse" en una comunidad, se envía un `Fol
```
| Nombre del Campo | Obligatorio | Descripción |
|---|---|---|
| ---------------- | ----------- | --------------------------------------------------------- |
| `actor` | si | El usuario que envía la solicitud de seguimiento `Follow` |
| `object` | si | La comunidad a seguir |
@ -435,7 +436,7 @@ Cuando un usuario crea una nueva publicación, ésta se envía a la comunidad co
```
| Nombre del Campo | Obligatorio | Descripción |
|---|---|---|
| ---------------- | ----------- | -------------------------------------- |
| `type` | si | Crear `Create` o Actualizar `Update` |
| `cc` | si | Comunidad donde se hizo la publicación |
| `object` | si | La publicación que se crea |
@ -465,7 +466,7 @@ Una respuesta a una publicación, o a otro comentario. Puede contener menciones
```
| Nombre del Campo | Obligatorio | Descripción |
|---|---|---|
| ---------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `tag` | no | Lista de los usuarios que se mencionan en el comentario (como `@usuario@ejemplo.com`) |
| `cc` | si | Comunidad en la que se hace la publicación, el usuario al que se responde (creador de la publicación/comentario principal), así como los usuarios mencionados |
| `object` | si | El comentario que se crea |
@ -488,8 +489,8 @@ Un voto positivo para una publicación o un comentario
}
```
| Nombre del Campo | Obligatorio | Descripción|
|---|---|---|
| Nombre del Campo | Obligatorio | Descripción |
| ---------------- | ----------- | ------------------------------------------------------------------- |
| `cc` | si | ID de la comunidad en la que se encuentra la publicación/comentario |
| `object` | si | La publicación o comentario que se ha votado |
@ -511,8 +512,8 @@ Un voto negativo para una publicación o un comentario
}
```
| Nombre del Campo | Obligatorio | Descripción|
|---|---|---|
| Nombre del Campo | Obligatorio | Descripción |
| ---------------- | ----------- | ------------------------------------------------------------------- |
| `cc` | si | ID de la comunidad en la que se encuentra la publicación/comentario |
| `object` | si | La publicación o comentario que se ha votado |
@ -534,8 +535,8 @@ Elimina una publicación o comentario creado anteriormente. Esto sólo lo puede
}
```
| Nombre del Campo | Obligatorio | Descripción|
|---|---|---|
| Nombre del Campo | Obligatorio | Descripción |
| ---------------- | ----------- | ------------------------------------------------------------------- |
| `cc` | si | ID de la comunidad en la que se encuentra la publicación/comentario |
| `object` | si | La publicación o comentario que se está eliminando |
@ -557,8 +558,8 @@ Remover una publicación o un comentario. Esto sólo puede hacerlo un mod de la
}
```
| Nombre del Campo | Obligatorio | Descripción|
|---|---|---|
| Nombre del Campo | Obligatorio | Descripción |
| ---------------- | ----------- | ------------------------------------------------------------------- |
| `cc` | si | ID de la comunidad en la que se encuentra la publicación/comentario |
| `object` | si | La publicación o comentario que se está removiendo |
@ -581,7 +582,7 @@ Revierte una actividad anterior, sólo puede hacerlo el actor `actor` del objeto
```
| Nombre del Campo | Obligatorio | Descripción |
|---|---|---|
| ---------------- | ----------- | ------------------------------------------------------------------------------------------------ |
| `object` | si | Cualquier actividad `Like`, `Dislike`, `Delete` o `Remove` tal como se ha descrito anteriormente |
#### Agregar Moderador
@ -646,7 +647,7 @@ Enviado automáticamente por la comunidad en respuesta a un `Follow`. Al mismo t
```
| Nombre del Campo | Obligatorio | Descripción |
|---|---|---|
| ---------------- | ----------- | ----------------------------------------------- |
| `actor` | si | La misma comunidad que en la actividad `Follow` |
| `to` | no | ID del usuario que envió el `Follow` |
| `object` | si | La actividad de `Follow` enviada anteriormente |
@ -670,7 +671,7 @@ Cuando la comunidad recibe una actividad publicación o comentario, lo envuelve
```
| Nombre del Campo | Obligatorio | Descripción |
|---|---|---|
| ---------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `object` | si | Cualquier actividad `Create`, `Update`, `Like`, `Dislike`, `Delete`, `Remove` o `Undo` tal como se ha descrito en la sección [Usuario a Comunidad](#user-to-community) |
#### Remover o Eliminar Comunidad
@ -691,8 +692,8 @@ Un administrador de instancia puede remover la comunidad, o un mod puede elimina
}
```
| Nombre del Campo| Obligatorio | Descripción |
|---|---|---|
| Nombre del Campo | Obligatorio | Descripción |
| ---------------- | ----------- | ------------------------------------ |
| `type` | si | Remover `Remove` o Eliminar `Delete` |
#### Restaurar Comunidad Removida o Eliminada
@ -723,8 +724,9 @@ Revierte la remoción o eliminación
}
```
| Nombre del Campo | Obligatorio | Descripción|
|---|---|---|
| Nombre del Campo | Obligatorio | Descripción |
| ---------------- | ----------- | ------------------------------------ |
| `object.type` | si | Remover `Remove` o Eliminar `Delete` |
### Usuario a Usuario
@ -744,8 +746,8 @@ Crea un nuevo mensaje privado entre dos usuarios.
}
```
| Nombre del Campo | Obligatorio| Descripción |
|---|---|---|
| Nombre del Campo | Obligatorio | Descripción |
| ---------------- | ----------- | -------------------------------------- |
| `type` | si | Crear `Create` o Actualizar `Update` |
| `object` | si | Un [Mensaje Privado](#private-message) |

View file

@ -7,9 +7,9 @@ Este documento es para cualquiera que quiera saber como funciona la federación
Para mantener las cosas simples, a veces verás cosas formateadas como Crear/Nota `Create/Note` o Eliminar/Evento `Delete/Event` o Deshacer/Seguir `Undo/Follow`. La cosa antes de la barra es la Actividad, y la cosa después de la barra es el Objeto dentro de la Actividad, una propiedad del objeto `objet`. Así que estos deben ser leídos como sigue:
* `Create/Note`: una actividad `Create` que contiene una `Note` en el campo del `object`
* `Delete/Event`: una actividad `Delete` que contiene un `Event` en el campo del `object`
* `Undo/Follow`: una actividad `Undo` que contiene un `Follow` en el campo del `object`
- `Create/Note`: una actividad `Create` que contiene una `Note` en el campo del `object`
- `Delete/Event`: una actividad `Delete` que contiene un `Event` en el campo del `object`
- `Undo/Follow`: una actividad `Undo` que contiene un `Follow` en el campo del `object`
En Lemmy utilizamos algunos términos específicos para referirnos a los elementos de ActivityPub. Son esencialmente nuestras implementaciones específicas de conceptos conocidos de ActivityPub:
@ -20,9 +20,9 @@ En Lemmy utilizamos algunos términos específicos para referirnos a los element
Este documento tiene tres secciones principales:
* __Filosofía de la federación:__ expone el modelo general de cómo se debe federar.
* __Actividades del usuario:__ describen las acciones que un usuario puede realizar para interactuar.
* __Actividades de la comunidad:__ describen lo que hace la comunidad en respuesta a determinadas acciones de los usuarios.
- **Filosofía de la federación:** expone el modelo general de cómo se debe federar.
- **Actividades del usuario:** describen las acciones que un usuario puede realizar para interactuar.
- **Actividades de la comunidad:** describen lo que hace la comunidad en respuesta a determinadas acciones de los usuarios.
## Filosofía de la federación

View file

@ -1,8 +1,8 @@
## À propos du pojet
Première page|Publication
---|---
![main screen](main_screen.png)|![chat screen](chat_screen.png)
| Première page | Publication |
| ------------------------------- | ------------------------------- |
| ![main screen](main_screen.png) | ![chat screen](chat_screen.png) |
[Lemmy](https://github.com/LemmyNet/lemmy) est similaire à des sites comme [Reddit](https://reddit.com), [Lobste.rs](https://lobste.rs), [Raddle](https://raddle.me) ou [Hacker News](https://news.ycombinator.com/) : vous vous abonnez aux forums qui vous intéressent, vous publiez des liens et des discussions, puis vous votez et commentez. Dans les coulisses, c'est très différent : n'importe qui peut facilement gérer un serveur, et tous ces serveurs sont fédérés (pensez au courrier électronique) et connectés au même univers, appelé le [Fediverse] (https://en.wikipedia.org/wiki/Fediverse).
@ -12,7 +12,7 @@ L'objectif global est de créer une alternative facilement auto-hébergeable et
Chaque serveur lemmy peut définir sa propre politique de modération, en nommant des administrateurs pour l'ensemble du site et des modérateurs de communauté afin d'écarter les trolls et de favoriser un environnement sain et non toxique où chacun peut se sentir à l'aise pour contribuer.
*Note: La Fédération est toujours en développement actif*
_Note: La Fédération est toujours en développement actif_
### Pourquoi "Lemmy" ?

View file

@ -18,7 +18,7 @@
- i18n / Prise en charge d l'internationalisation.
- RSS / Flux Atom pour "Tous", "Abonnés", "Boîte de réception", "Utilisateur" et "Communauté".
- Prise en charge du publipostage croisé.
- Une *recherche de messages similaires* lors de la création de nouveaux messages. Idéal pour les communautés de questions/réponses.
- Une _recherche de messages similaires_ lors de la création de nouveaux messages. Idéal pour les communautés de questions/réponses.
- Capacités de modération.
- Logs de modération publics.
- Peut épingler des messages en haut des communautés.

View file

@ -1,6 +1,6 @@
# Objectifs
*Cette section contient des idées et des ressources de l'équipe qui développe Lemmy*. Similaire à un bloc-notes
_Cette section contient des idées et des ressources de l'équipe qui développe Lemmy_. Similaire à un bloc-notes
- Trouver un nom / nom de code.
- Doit avoir des communautés.

View file

@ -8,16 +8,16 @@ Commencez à taper...
## Triage
*Applique aux messages et aux commentaires*.
_Applique aux messages et aux commentaires_.
Type | Description
--- | ---
Actif | Tendance triée en fonction du score et de l'heure du commentaire le plus récent.
Hot | Tendance de tri basée sur le score et l'heure de création du message.
Nouveau | Les éléments les plus récents.
Plus de commentaires | Les messages avec le plus de commentaires.
Nouveaux commentaires | Les messages avec les commentaires les plus récents, IE un tri de style forum.
Top | Les éléments les mieux notés dans la période donnée.
| Type | Description |
| --------------------- | -------------------------------------------------------------------------------- |
| Actif | Tendance triée en fonction du score et de l'heure du commentaire le plus récent. |
| Hot | Tendance de tri basée sur le score et l'heure de création du message. |
| Nouveau | Les éléments les plus récents. |
| Plus de commentaires | Les messages avec le plus de commentaires. |
| Nouveaux commentaires | Les messages avec les commentaires les plus récents, IE un tri de style forum. |
| Top | Les éléments les mieux notés dans la période donnée. |
Pour plus de détails, consultez le [Classement des messages et des commentaires] (ranking.md).
@ -35,23 +35,22 @@ Toutes les actions d'administration sur les communautés sont effectuées sur la
## Markdown Guide
Tapez | ou | ... pour obtenir
--- | --- | ---
\*Italique\* | \_Italique\_ | _Italique_
\*\*Gras\*\* | \_\_Gras\_\_ | **Gras**
\# Rubrique 1 | Rubrique 1 <br> ========= | <h4>Rubrique 1</h4>
\## Rubrique 2 | Rubrique 2 <br>--------- | <h5>Rubrique 2</h5>
\[lien\](http://a.com) | \[lien\]\[1\]<br><br>\[1\]: http://b.org | [lien](https://commonmark.org/)
!\[Image\](http://url/a.png) | !\[Image\]\[1\]<br><br>\[1\]: http://url/b.jpg | ![Markdown](https://commonmark.org/help/images/favicon.png)
\> Citation en bloc | | <blockquote>Citation en bloc</blockquote>
\* Liste <br>\* Liste <br>\* Liste | \- Liste <br>\- Liste <br>\- Liste <br> | * Liste <br>* Liste <br>* Liste <br>
1\. Un <br>2\. Deux <br>3\. Trois | 1) Un<br>2) Deux<br>3) Trois | 1. Une<br>2. Deux<br>3. Trois
Règle horizontale <br>\--- | Règle horizontale<br>\*\*\* | Règle horizontale <br><hr>
\`Code Inline\` avec des backticks | |`Code Inline` avec des backticks
\`\`\`<br>\# bloc de code <br>print '3 backticks ou'<br>print 'retrait de 4 espaces' <br>\`\`\` | ····\# bloc de code<br>····print '3 backticks ou'<br>····print 'retrait de 4 espaces' | \# bloc de code <br>print '3 backticks ou'<br>print 'retrait de 4 espaces'
::: spoiler caché ou trucs nsfw<br>*un tas de spoilers ici*<br>::: | | <details><summary> spoiler caché ou trucs nsfw </summary><p><em>un tas de spoilers ici</em></p></details>
Certains texte \~indice\~ | | Certains texte <sub>indice</sub>
Quelques texte ^indice^ | | Quelques texte <sup>indice</sup>
| Tapez | ou | ... pour obtenir |
| ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| \*Italique\* | \_Italique\_ | _Italique_ |
| \*\*Gras\*\* | \_\_Gras\_\_ | **Gras** |
| \# Rubrique 1 | Rubrique 1 <br> ========= | <h4>Rubrique 1</h4> |
| \## Rubrique 2 | Rubrique 2 <br>--------- | <h5>Rubrique 2</h5> |
| \[lien\](http://a.com) | \[lien\]\[1\]<br><br>\[1\]: http://b.org | [lien](https://commonmark.org/) |
| !\[Image\](http://url/a.png) | !\[Image\]\[1\]<br><br>\[1\]: http://url/b.jpg | ![Markdown](https://commonmark.org/help/images/favicon.png) |
| \> Citation en bloc | | <blockquote>Citation en bloc</blockquote> |
| \* Liste <br>\* Liste <br>\* Liste | \- Liste <br>\- Liste <br>\- Liste <br> | _ Liste <br>_ Liste <br>\* Liste <br> |
| 1\. Un <br>2\. Deux <br>3\. Trois | 1) Un<br>2) Deux<br>3) Trois | 1. Une<br>2. Deux<br>3. Trois |
| Règle horizontale <br>\--- | Règle horizontale<br>\*\*\* | Règle horizontale <br><hr> |
| \`Code Inline\` avec des backticks | | `Code Inline` avec des backticks |
| \`\`\`<br>\# bloc de code <br>print '3 backticks ou'<br>print 'retrait de 4 espaces' <br>\`\`\` | ····\# bloc de code<br>····print '3 backticks ou'<br>····print 'retrait de 4 espaces' | \# bloc de code <br>print '3 backticks ou'<br>print 'retrait de 4 espaces' |
| ::: spoiler caché ou trucs nsfw<br>_un tas de spoilers ici_<br>::: | | <details><summary> spoiler caché ou trucs nsfw </summary><p><em>un tas de spoilers ici</em></p></details> |
| Certains texte \~indice\~ | | Certains texte <sub>indice</sub> |
| Quelques texte ^indice^ | | Quelques texte <sup>indice</sup> |
[Tutoriel CommonMark](https://commonmark.org/help/tutorial/)

View file

@ -27,6 +27,7 @@ Score = Upvotes - Downvotes
Time = time since submission (in hours)
Gravity = Decay gravity, 1.8 is default
```
- Lemmy utilise le même algorithme de `Rank` ci-dessus, en deux sortes : `Active`, et `Hot`.
- Actif" utilise les votes du message, et le temps du dernier commentaire (limité à deux jours).
- `Hot` utilise les votes du message, et l'heure de publication du message.

View file

@ -11,6 +11,7 @@ Pour sauvegarder de manière incrémentielle la base de données dans un fichier
```bash
docker-compose exec postgres pg_dumpall -c -U lemmy > lemmy_dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql
```
### Un exemple de script de sauvegarde
```bash
@ -73,5 +74,3 @@ update community set shared_inbox_url = replace (shared_inbox_url, 'ancien_domai
## Plus de ressources
- https://stackoverflow.com/questions/24718706/backup-restore-a-dockerized-postgresql-database

View file

@ -18,6 +18,7 @@ ansible-playbook lemmy.yml --become
```
Pour mettre à jour une nouvelle version, il suffit d'exécuter la commande suivante dans votre dépôt Lemmy local :
```bash
git pull origin main
cd ansible

View file

@ -52,12 +52,14 @@ proxy_pass $proxpass;
```
Vous pouvez vérifier qu'il fonctionne correctement en exécutant les commandes suivantes, qui devraient toutes renvoyer un JSON valide :
```
curl -H "Accept: application/activity+json" https://your-instance.com/u/some-local-user
curl -H "Accept: application/activity+json" https://your-instance.com/c/some-local-community
curl -H "Accept: application/activity+json" https://your-instance.com/post/123 # the id of a local post
curl -H "Accept: application/activity+json" https://your-instance.com/comment/123 # the id of a local comment
```
### La récupération d'objets distants fonctionne, mais la publication/le commentaire dans les communautés distantes échoue.
Vérifiez que [la fédération est autorisée sur les deux instances](../federation/administration.md#instance-allowlist-and-blocklist).

View file

@ -1,2 +1,3 @@
# WebSocket API
[Lemmy WebSocket API 2.0 documentation](https://join-lemmy.org/api/index.html)

View file

@ -25,4 +25,4 @@ Par défaut, les valeurs `allowed_instances` et `blocked_instances` sont vides,
Ce que nous recommandons est de mettre une liste d'instances de confiance dans `allowed_instances`, et de ne se fédérer qu'avec celles-ci. Notez que les deux parties doivent s'ajouter mutuellement à leurs `allowed_instances` pour permettre une fédération bidirectionnelle.
Alternativement, vous pouvez aussi utiliser une fédération basée sur une liste de blocage. Dans ce cas, ajoutez les domaines des instances avec lesquelles vous ne voulez *pas* vous fédérer. Vous ne pouvez définir que l'un des deux, `allowed_instances` et `blocked_instances`, car définir les deux n'a pas de sens.
Alternativement, vous pouvez aussi utiliser une fédération basée sur une liste de blocage. Dans ce cas, ajoutez les domaines des instances avec lesquelles vous ne voulez _pas_ vous fédérer. Vous ne pouvez définir que l'un des deux, `allowed_instances` et `blocked_instances`, car définir les deux n'a pas de sens.

View file

@ -16,38 +16,38 @@ Dans les tableaux suivants, le terme "obligatoire" indique si Lemmy accepte ou n
- [Contexte](#contexte)
- [Acteurs](#acteurs)
* [Communauté](#communauté)
+ [Boîte de sortie communautaire](#boîte-de-sortie-communautaire)
+ [Suiveurs de la communauté](#suiveurs-de-la-communauté)
+ [Modérateurs de la communauté](#modérateurs-de-la-communauté)
* [Utilisateur](#utilisateur)
+ [Boîte de sortie de l'utilisateur](#boîte-de-sortie-de-lutilisateur)
- [Communauté](#communauté)
- [Boîte de sortie communautaire](#boîte-de-sortie-communautaire)
- [Suiveurs de la communauté](#suiveurs-de-la-communauté)
- [Modérateurs de la communauté](#modérateurs-de-la-communauté)
- [Utilisateur](#utilisateur)
- [Boîte de sortie de l'utilisateur](#boîte-de-sortie-de-lutilisateur)
- [Objets](#objets)
* [Publication](#publication)
* [Commentaire](#commentaire)
* [Message privé](#message-privé)
- [Publication](#publication)
- [Commentaire](#commentaire)
- [Message privé](#message-privé)
- [Activités](#activités)
* [De l'utilisateur à la communauté](#utilisateur-à-la-communauté)
+ [Suivre](#suivre)
+ [Ne pas suivre](#ne-pas-suivre)
+ [Créer ou mettre à jour un poste](#créer-ou-mettre-à-jour-un-message)
+ [Créer ou mettre à jour un commentaire](#créer-ou-mettre-à-jour-un-commentaire)
+ [Aimer le message ou le commentaire](#jaime-un-message-ou-un-commentaire)
+ [Ne pas aimer le message ou le commentaire](#naime-pas-le-message-ou-le-commentaire)
+ [Supprimer un message ou un commentaire](#supprimer-un-message-ou-un-commentaire)
+ [Retirer un message ou le commentaire](#retirer-un-message-ou-le-commentaire)
+ [Défaire](#defaire)
+ [Ajouter un modérateur](#ajouter-un-mod)
+ [Supprimer un modérateur](#supprimer-un-mod)
* [De la communauté à l'utilisateur](#communauté-à-lutilisateur)
+ [Accepter Suivre](#accepter-un-suivi)
+ [Annoncer](#annoncer)
+ [Retirer ou supprimer une communauté](#retirer-ou-supprimer-une-communauté)
+ [Restaurer une communauté retiré ou effacée](#rétablir-la-communauté-supprimée-ou-retirée)
* [D'utilisateur à utilisateur](#utilisateur-à-utilisateur)
+ [Créer ou mettre à jour un message privé](#créer-ou-mettre-à-jour-un-message-privé)
+ [Supprimer un message privé](#supprimer-un-message-privé)
+ [Défaire Supprimer un message privé](#annuler-la-suppression-dun-message-privé)⏎
- [De l'utilisateur à la communauté](#utilisateur-à-la-communauté)
- [Suivre](#suivre)
- [Ne pas suivre](#ne-pas-suivre)
- [Créer ou mettre à jour un poste](#créer-ou-mettre-à-jour-un-message)
- [Créer ou mettre à jour un commentaire](#créer-ou-mettre-à-jour-un-commentaire)
- [Aimer le message ou le commentaire](#jaime-un-message-ou-un-commentaire)
- [Ne pas aimer le message ou le commentaire](#naime-pas-le-message-ou-le-commentaire)
- [Supprimer un message ou un commentaire](#supprimer-un-message-ou-un-commentaire)
- [Retirer un message ou le commentaire](#retirer-un-message-ou-le-commentaire)
- [Défaire](#defaire)
- [Ajouter un modérateur](#ajouter-un-mod)
- [Supprimer un modérateur](#supprimer-un-mod)
- [De la communauté à l'utilisateur](#communauté-à-lutilisateur)
- [Accepter Suivre](#accepter-un-suivi)
- [Annoncer](#annoncer)
- [Retirer ou supprimer une communauté](#retirer-ou-supprimer-une-communauté)
- [Restaurer une communauté retiré ou effacée](#rétablir-la-communauté-supprimée-ou-retirée)
- [D'utilisateur à utilisateur](#utilisateur-à-utilisateur)
- [Créer ou mettre à jour un message privé](#créer-ou-mettre-à-jour-un-message-privé)
- [Supprimer un message privé](#supprimer-un-message-privé)
- [Défaire Supprimer un message privé](#annuler-la-suppression-dun-message-privé)⏎
<!-- tocstop -->
@ -125,7 +125,7 @@ Reçoit des activités de l'utilisateur : `Follow`, `Undo/Follow`, `Create`, `Up
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| ------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `preferredUsername` | oui | Nom de l'acteur |
| `name` | oui | Titre de la communauté |
| `sensitive` | oui | True indique que tous les messages dans la communauté sont nsfw |
@ -231,7 +231,7 @@ Envoie et reçoit des activités de/vers d'autres utilisateurs : Créer/Note `Cr
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| ------------------- | ----------- | ------------------------------------------------------------------------ |
| `preferredUsername` | oui | Nom de l'acteur |
| `name` | non | Nom d'affichage de l'utilisateur |
| `content` | non | Biographie de l'utilisateur |
@ -239,7 +239,7 @@ Envoie et reçoit des activités de/vers d'autres utilisateurs : Créer/Note `Cr
| `image` | non | La bannière de l'utilisateur, affichée en haut du profil |
| `inbox` | non | URL de la boîte de réception d'ActivityPub |
| `endpoints` | non | Contient l'URL de la boîte de réception partagée |
| `published` | non | La date de l'inscription de l'utilisateur.
| `published` | non | La date de l'inscription de l'utilisateur. |
| `updated` | non | Date à laquelle le profil de l'utilisateur a été modifié en dernier lieu |
| `publicKey` | oui | La clé publique utilisée pour vérifier les signatures de cet acteur |
@ -294,7 +294,7 @@ Une page avec un titre, une URL facultative et un contenu textuel. L'URL mène s
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| ----------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------- |
| `attributedTo` | oui | ID de l'utilisateur qui a créé ce message |
| `to` | oui | ID de la communauté où il a été posté |
| `name` | oui | Titre du message |
@ -334,7 +334,7 @@ Une réponse à un message, ou une réponse à un autre commentaire. Ne contient
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| -------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `attributedTo` | oui | ID de l'utilisateur qui a créé le commentaire |
| `to` | oui | Communauté où le commentaire a été fait |
| `content` | oui | Le texte du commentaire |
@ -365,7 +365,7 @@ Un message direct d'un utilisateur à un autre. Il ne peut pas inclure d'autres
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| -------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------- |
| `attributedTo` | ID de l'utilisateur qui a créé ce message privé |
| `to` | ID du destinataire |
| `content` | oui | Le texte du message privé |
@ -392,8 +392,8 @@ Lorsque l'utilisateur clique sur "Subscribe" dans une communauté, un `Follow` e
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| `actor` | oui | L'utilisateur qui envoie la demande de suivi.
| ------------ | ----------- | --------------------------------------------- |
| `actor` | oui | L'utilisateur qui envoie la demande de suivi. |
| `object` | oui | La communauté à suivre |
#### Ne pas suivre
@ -436,8 +436,8 @@ Lorsqu'un utilisateur crée un nouveau message, celui-ci est envoyé à la commu
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| `type` | oui | soit `Create`, soit `Update` |...
| ------------ | ----------- | --------------------------------- | --- |
| `type` | oui | soit `Create`, soit `Update` | ... |
| `cc` | oui | Communauté où le message est créé |
| `object` | oui | Le message en cours de création |
@ -466,9 +466,9 @@ Une réponse à un article ou à un autre commentaire. Peut contenir des mention
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| ------------ | ----------- | ---------------------------------------------------------------------------------------- |
| `tag` | non | Liste des utilisateurs mentionnés dans le commentaire (comme `@utilisateur@exemple.com`) |
| `cc`| oui | La liste des utilisateurs mentionnés dans le commentaire (par exemple, `@`).
| `cc` | oui | La liste des utilisateurs mentionnés dans le commentaire (par exemple, `@`). |
| `object` | oui | Le commentaire en cours de création |
#### J'aime un message ou un commentaire
@ -490,7 +490,7 @@ Un vote positif pour un message ou un commentaire.
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| ------------ | ----------- | ---------------------------------------------------------- |
| `cc` | oui | L'ID de la communauté où se trouve le message/commentaire. |
| `object` | oui | Le message ou le commentaire en cours de validation |
@ -513,7 +513,7 @@ Un vote négatif pour un message ou un commentaire.
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| ------------ | ----------- | ---------------------------------------------------------- |
| `cc` | oui | L'ID de la communauté où se trouve le message/commentaire. |
| `object` | oui | Le message ou le commentaire en cours de validation |
@ -536,7 +536,7 @@ Supprime un message ou un commentaire précédemment créé. Ceci ne peut être
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| ------------ | ----------- | ---------------------------------------------------------- |
| `cc` | oui | L'ID de la communauté où se trouve le message/commentaire. |
| `object` | oui | ID du message ou du commentaire à supprimer |
@ -559,7 +559,7 @@ Supprime un message ou un commentaire. Cela ne peut être fait que par un mod de
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| ------------ | ----------- | ---------------------------------------------------------- |
| `cc` | oui | L'ID de la communauté où se trouve le message/commentaire. |
| `object` | oui | ID du message ou du commentaire à supprimer |
@ -582,7 +582,7 @@ Défait une activité précédente, ne peut être fait que par l'acteur `actor`
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| ------------ | ----------- | ----------------------------------------------------------------------------- |
| `object` | oui | Toute activité `Like`, `Dislike`, `Delete` ou `Remove` comme décrit ci-dessus |
#### Ajouter un mod
@ -622,6 +622,7 @@ Supprime un mod existant de la communauté. Doit être envoyé par un mod exista
"target": "https://enterprise.lemmy.ml/c/main/moderators"
}
```
### Communauté à l'utilisateur
#### Accepter un suivi
@ -646,7 +647,7 @@ Envoyé automatiquement par la communauté en réponse à un `Follow`. En même
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| ------------ | ----------- | --------------------------------------------------- |
| `actor` | oui | La même communauté que celle de l'activité `Follow` |
| `to` | non | L'ID de l'utilisateur qui a envoyé le `Follow` |
| `object` | oui | L'activité `Follow` précédemment envoyée |
@ -670,7 +671,7 @@ Lorsque la communauté reçoit une activité de post ou de commentaire, elle l'i
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `object` | oui | Toute activité de type `Create`, `Update`, `Like`, `Dislike`, `Delete` `Remove` ou `Undo` décrite dans la section [User to Community](#user-to-community) |
#### Retirer ou supprimer une communauté
@ -692,7 +693,7 @@ Un administrateur d'instance peut supprimer la communauté, ou un mod peut la su
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| ------------ | ----------- | --------------------------- |
| `type` | oui | Soit `Remove` soit `Delete` |
#### Rétablir la communauté supprimée ou retirée
@ -723,8 +724,9 @@ Rétablit le retrait ou la suppression.
}
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| ------------- | ----------- | ------------------------- |
| `object.type` | oui | Soit `Remove` ou `Delete` |
### Utilisateur à Utilisateur
@ -745,8 +747,8 @@ Crée un nouveau message privé entre deux utilisateurs.
```
| Nom du champ | Obligatoire | Description |
|---|---|---|
| `type` | oui | Soit `Create`, soit `Update` |...
| ------------ | ----------- | ------------------------------------- | --- |
| `type` | oui | Soit `Create`, soit `Update` | ... |
| `object` | oui | A [Private Message](#private-message) |
#### Supprimer un message privé

View file

@ -1,15 +1,14 @@
# Aperçu de la fédération
Ce document est destiné à tous ceux qui veulent savoir comment fonctionne la fédération Lemmy, sans être trop technique. Il est destiné à fournir un aperçu de haut niveau de la fédération ActivityPub dans Lemmy. Si vous implémentez ActivityPub vous-même et souhaitez être compatible avec Lemmy, lisez notre [ActivityPub API outline](contributing_apub_api_outline.md).
## Conventions de documentation
Pour garder les choses simples, vous verrez parfois des choses formatées comme `Create/Note`, `Delete/Event` ou `Undo/Follow`. La chose avant le slash est l'activité, et la chose après le slash est l'objet à l'intérieur de l'activité, dans une propriété `object`. Il faut donc les lire comme suit :
* `Create/Note` : une activité `Create` contenant une `Note` dans le champ `object`.
* `Delete/Event` : une activité `Delete` contenant un `Event` dans le champ `object`.
* `Undo/Follow` : une activité `Undo` contenant un `Follow` dans le champ `object`.
- `Create/Note` : une activité `Create` contenant une `Note` dans le champ `object`.
- `Delete/Event` : une activité `Delete` contenant un `Event` dans le champ `object`.
- `Undo/Follow` : une activité `Undo` contenant un `Follow` dans le champ `object`.
Dans Lemmy, nous utilisons certains termes spécifiques pour désigner les éléments ActivityPub. Il s'agit essentiellement de nos implémentations spécifiques de concepts ActivityPub bien connus :
@ -20,9 +19,9 @@ Dans Lemmy, nous utilisons certains termes spécifiques pour désigner les élé
Ce document comporte trois sections principales :
* __Philosophie de la fédération__ expose le modèle général de la manière dont le projet est censé se fédérer.
* __Les activités des utilisateurs__ décrivent les actions qu'un utilisateur peut entreprendre pour interagir.
* __Activités de la communauté__ décrit ce que la communauté fait en réponse à certaines actions de l'utilisateur.
- **Philosophie de la fédération** expose le modèle général de la manière dont le projet est censé se fédérer.
- **Les activités des utilisateurs** décrivent les actions qu'un utilisateur peut entreprendre pour interagir.
- **Activités de la communauté** décrit ce que la communauté fait en réponse à certaines actions de l'utilisateur.
## Philosophie de la Fédération

View file

@ -1,12 +1,12 @@
## Tentang Proyek Ini
Halaman Depan|Pos
---|---
![layar utama](main_screen.png)|![layar percakapan](chat_screen.png)
| Halaman Depan | Pos |
| ------------------------------- | ------------------------------------ |
| ![layar utama](main_screen.png) | ![layar percakapan](chat_screen.png) |
[Lemmy](https://github.com/LemmyNet/lemmy) serupa seperti situs seperti [Reddit](https://reddit.com), [Lobste.rs](https://lobste.rs), [Raddle](https://raddle.me), atau [Hacker News](https://news.ycombinator.com/): Anda berlangganan ke forum yang Anda tertarik kepada mereka, pos tautan dan diskusi, kemudian pilih, dan komentar di sana. Di belakang layar, itu sangat berbeda; semua orang bisa dengan mudah menjalankan sebuah peladen dan semua peladen tersebut terfederasi (seperti surel) dan terhubung ke semesta yang sama, yaitu [Fediverse](https://en.wikipedia.org/wiki/Fediverse).
*Kata “fediverse” (federated universe) merujuk kepada jaringan dari semua peladen Lemmy [dan proyek lainnya](https://blog.joinmastodon.org/2018/06/why-activitypub-is-the-future/), yang dimana pengguna bisa berbicara satu sama lain dengan seamlessly.*
_Kata “fediverse” (federated universe) merujuk kepada jaringan dari semua peladen Lemmy [dan proyek lainnya](https://blog.joinmastodon.org/2018/06/why-activitypub-is-the-future/), yang dimana pengguna bisa berbicara satu sama lain dengan seamlessly._
Seperti surel, entah Anda mendaftar di Gmail atau Outlook, Anda tahu Anda akan bisa mengirim surel ke semua yang Anda butuhkan, asalkan Anda tahu alamat mereka. Di Lemmy, Anda bisa berlangganan ke komunitas di peladen mana pun lainnya dan bisa mengikuti diskusi dengan pengguna terdaftar dimana pun.
@ -16,7 +16,7 @@ Tidak ada pemegang modal dan tidak ada iklan tertarget: hanya orang yang membagi
Setiap peladen Lemmy bisa menentukan kebijakan moderasinya sendiri-sendiri; mengangkat admin tingkat situs, moderator komunitas untuk waspada terhadap _troll_, dan memupuk lingkungan yang sehat di mana semua bisa dengan nyaman berkontribusi.
*Catatan: Federasi masih dalam pengembangan aktif*
_Catatan: Federasi masih dalam pengembangan aktif_
### Kenapa dinamai Lemmy?

View file

@ -18,7 +18,7 @@
- i18n/dukungan penginternasionalan
- Umpan RSS/Atom untuk `Semua`, `Berlangganan`, `Kotak Masuk`, `Pengguna`, dan `Komunitas`.
- Dukungan pos-lintas.
- Sebuah *pencarian pos serupa* ketika membuat pos baru. Bagus untuk komunitas tanya/jawab.
- Sebuah _pencarian pos serupa_ ketika membuat pos baru. Bagus untuk komunitas tanya/jawab.
- Kemampuan moderasi.
- Log Moderasi Publik.
- Bisa melengketkan pos ke bagian atas komunitas.

View file

@ -6,11 +6,11 @@ Jadi Anda ingin bergabung dengan Lemmy dan mulai mengepos. Bagus! Begini cara un
Hal pertama yang Anda harus lakukan adalah **memilih peladen Anda**. Ini merupakan langkah tambahan dibandingkan dengan situs seperti Reddit, tapi tidak sesulit yang dikira.
*Seperti surel, identitas Anda dihos oleh peladen yang dimana Anda mendaftar. Jadi sebagai contoh, saya gabung ke lemmy.ml, jadi untuk menyebutkan saya, Anda bisa mengetikkan @retiolus@lemmy.ml di pos Anda.*
_Seperti surel, identitas Anda dihos oleh peladen yang dimana Anda mendaftar. Jadi sebagai contoh, saya gabung ke lemmy.ml, jadi untuk menyebutkan saya, Anda bisa mengetikkan @retiolus@lemmy.ml di pos Anda._
Jika apa yang ingin Anda bicarakan sesuai dengan kategori yang jelas (mungkin itu permainan video atau seni atau kehidupan aneh atau pengkodean atau fiksi, dll.) maka mungkin ada baiknya membuat peladen pertama Anda di mana yang terutama akan menampung konten semacam itu akan lebih mudah untuk membuat koneksi dan menemukan orang-orang yang berpikiran sama. Pikirkan peladen Anda sebagai lingkungan atau tempat, di mana obrolan umum tersebut dapat memiliki fokus khusus.
*Anda memiliki kemampuan untuk melihat semua pos lokal publik yang dibuat oleh orang di peladen Anda di bilah "Lokal".*
_Anda memiliki kemampuan untuk melihat semua pos lokal publik yang dibuat oleh orang di peladen Anda di bilah "Lokal"._
Jika Anda tidak di sini untuk menempel ke satu topik, Anda mungkin ingin memilih peladen yang melayani percakapan umum. Apa pun itu, ada daftar peladen yang berguna di [join-lemmy.org](https://join-lemmy.org/instances).
@ -30,7 +30,7 @@ Pergi ke halaman Masuk `(https://your.server/login)` dari peladen Anda dan pilih
Hal selanjutnya untuk dilakukan adalah mengunggah gambar profil Anda, berikan halaman pengaturan `(https://your.server/settings)` sebuah utak-atik (dan kembali melakukannya ketika Anda sudah di Lemmy selama beberapa pekan atau hanya untuk utak-atik yang mungkin membantu pengalaman Anda) dan bersiaplah untuk mengenalkan diri Anda.
*Beberapa pengaturan yang menarik untuk diperiksa adalah: jenis filter umpan baku antara berlangganan, lokal, atau semua dan jenis pengurutan baku Anda*
_Beberapa pengaturan yang menarik untuk diperiksa adalah: jenis filter umpan baku antara berlangganan, lokal, atau semua dan jenis pengurutan baku Anda_
Meskipun Anda bisa hanya santai membaca Lemmy, keseruan yang asli dimulai ketika Anda meluncur dan mulai berpartisipasi dengan mengepos, mengeluarkan pilihan, dan berkomentar
@ -57,7 +57,7 @@ Tampilan standar Lemmy memiliki satu umpan. Anda bisa mengubah konten dari umpan
**Semua** atau **lini masa terfederasi** adalah untuk melihat semua pos publik yang peladen Anda ketahui dari seluruh jaringan (termasuk yang lokal). Alasan yang paling umum ketika sesuatu tampil di lini masa terfederasi adalah ada seseorang dari peladen Anda mengikuti komunitas yang ada di peladen lainnya.
| Jenis | Deskripsi |
| --- | --- |
| ---------------------- | -------------------------------------------------------------------- |
| Pos | Hanya tampilkan publikasi (pos) |
| Komentar | Hanya tampilkan komentar |
| \-\-\- | \-\-\- |
@ -74,22 +74,22 @@ Untuk detail lebih lanjut, periksa [detail Ranking Pos dan Komentar](ranking.md)
Pos Lemmy ditulis menggunakan Markdown, tentu saja ada pintasan untuk Anda gunakan ketika menulis, di bawah ini merupakan tabel untuk membantu Anda jika Anda ingin tahu lebih lanjut.
Ketik | Atau | … untuk mendapatkan
--- | --- | ---
\*Miring\* | \_Miring\_ | _Miring_
\*\*Tebal\*\* | \_\_Tebal\_\_ | **Tebal**
\# Tajuk 1 | Tajuk 1 <br> ========= | <h4>Tajuk 1</h4>
\## Tajuk 2 | Tajuk 2 <br>--------- | <h5>Tajuk 2</h5>
\[Tautan\](http://a.com) | \[Tautan\]\[1\]<br><br>\[1\]: http://b.org | [Tautan](https://commonmark.org/)
!\[Gambar\](http://url/a.png) | !\[Gambar\]\[1\]<br><br>\[1\]: http://url/b.jpg | ![Markdown](https://commonmark.org/help/images/favicon.png)
\> Kutipan | | <blockquote>Kutipan</blockquote>
\* Daftar <br>\* Daftar <br>\* Daftar | \- Daftar <br>\- Daftar <br>\- Daftar <br> | * Daftar <br>* Daftar <br>* Daftar <br>
1\. Satu <br>2\. Dua <br>3\. Tiga | 1) Satu<br>2) Dua<br>3) Tiga | 1. Satu<br>2. Dua<br>3. Tiga
Garis Horizontal <br>\--- | Garis Horizontal<br>\*\*\* | Garis Horizontal <br><hr>
\`Kode di pos\` dengan petik terbalik | |`Kode di pos` dengan petik terbalik
\`\`\`<br>\# blok kode <br>print '3 petik terbalik or'<br>print 'indentasi 4 spasi' <br>\`\`\` | ····\# blok kode<br>····print '3 petik terbalik or'<br>····print 'indentasi 4 spasi' | \# blok kode <br>print '3 petik terbalik or'<br>print 'indentasi 4 spasi'
::: spoiler sembunyi atau sesuatu porno<br>*sesuatu untuk disembunyikan*<br>::: | | <details><summary> sembunyi atau sesuatu porno </summary><p><em>sesuatu untuk disembunyikan</em></p></details>
Teks ~bawah~ garis | | Teks <sub>bawah</sub> garis
Teks ^atas^ garis | | Teks <sup>atas</sup> garis
| Ketik | Atau | … untuk mendapatkan |
| ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------- |
| \*Miring\* | \_Miring\_ | _Miring_ |
| \*\*Tebal\*\* | \_\_Tebal\_\_ | **Tebal** |
| \# Tajuk 1 | Tajuk 1 <br> ========= | <h4>Tajuk 1</h4> |
| \## Tajuk 2 | Tajuk 2 <br>--------- | <h5>Tajuk 2</h5> |
| \[Tautan\](http://a.com) | \[Tautan\]\[1\]<br><br>\[1\]: http://b.org | [Tautan](https://commonmark.org/) |
| !\[Gambar\](http://url/a.png) | !\[Gambar\]\[1\]<br><br>\[1\]: http://url/b.jpg | ![Markdown](https://commonmark.org/help/images/favicon.png) |
| \> Kutipan | | <blockquote>Kutipan</blockquote> |
| \* Daftar <br>\* Daftar <br>\* Daftar | \- Daftar <br>\- Daftar <br>\- Daftar <br> | _ Daftar <br>_ Daftar <br>\* Daftar <br> |
| 1\. Satu <br>2\. Dua <br>3\. Tiga | 1) Satu<br>2) Dua<br>3) Tiga | 1. Satu<br>2. Dua<br>3. Tiga |
| Garis Horizontal <br>\--- | Garis Horizontal<br>\*\*\* | Garis Horizontal <br><hr> |
| \`Kode di pos\` dengan petik terbalik | | `Kode di pos` dengan petik terbalik |
| \`\`\`<br>\# blok kode <br>print '3 petik terbalik or'<br>print 'indentasi 4 spasi' <br>\`\`\` | ····\# blok kode<br>····print '3 petik terbalik or'<br>····print 'indentasi 4 spasi' | \# blok kode <br>print '3 petik terbalik or'<br>print 'indentasi 4 spasi' |
| ::: spoiler sembunyi atau sesuatu porno<br>_sesuatu untuk disembunyikan_<br>::: | | <details><summary> sembunyi atau sesuatu porno </summary><p><em>sesuatu untuk disembunyikan</em></p></details> |
| Teks ~bawah~ garis | | Teks <sub>bawah</sub> garis |
| Teks ^atas^ garis | | Teks <sup>atas</sup> garis |
[Tutorial CommonMark](https://commonmark.org/help/tutorial/)

View file

@ -27,6 +27,7 @@ Score = Upvotes - Downvotes
Time = time since submission (in hours)
Gravity = Decay gravity, 1.8 is default
```
- Lemmy menggunakan algoritma `Rank` yang sama di atas, dengan dua cara: `Active` dan `Hot`
- `Active` menggunakan suara pos, dan waktu komentar terakhir (dibatasi hingga dua hari).
- `Hot` menggunakan suara pos, dan waktu pos diterbitkan.
@ -41,6 +42,6 @@ Plot peringkat lebih dari 24 jam, dengan skor 1, 5, 10, 100, 1000, dengan faktor
#### Penghitungan Pengguna Aktif
Lemmy juga menampilkan jumlah *pengguna aktif* untuk situs Anda, dan komunitasnya. Ini dihitung dalam `hari`, `pekan`, `bulan`, dan `setengah tahun` terakhir, dan ditembolokkan dalam pemulaian Lemmy, dan setiap jam.
Lemmy juga menampilkan jumlah _pengguna aktif_ untuk situs Anda, dan komunitasnya. Ini dihitung dalam `hari`, `pekan`, `bulan`, dan `setengah tahun` terakhir, dan ditembolokkan dalam pemulaian Lemmy, dan setiap jam.
Pengguna aktif merupakan seseorang yang mempos atau berkomentar di peladen atau komunitas dalam jangka waktu terakhir yang ditentukan. Untuk penghitungan situs, hanya pengguna lokal yang dihitung. Untuk penghitungan komunitas, pengguna terfederasi juga dihitung.

View file

@ -3,17 +3,21 @@
Informasi untuk admin peladen Lemmy dan mereka yang ingin menjalankan sebuah peladen.
## Pasang
### Metode Resmi/Didukung
Lemmy memiliki dua metode pemasangan utama:
- [Manual dengan Docker](install_docker.md)
- [Otomatis dengan Ansible](install_ansible.md)
Kami merekomendasikan menggunakan Ansible, karena menyederhanakan instalasi dan juga membuat pembaruan lebih mudah.
### Metode pemasangan lainnya
> ⚠️ **Hati-hati! Risiko Anda sendiri**
Dalam beberapa kasus, mungkin perlu menggunakan metode pemasangan yang berbeda. Tetapi kami tidak merekomendasikan ini, dan tidak dapat memberikan dukungan untuk mereka.
- [Dari Awal](from_scratch.md)
- [Di Amazon Web Services (AWS)](on_aws.md)

View file

@ -11,6 +11,7 @@ Untuk pencadangan DB bertahap ke berkas `.sql`, Anda bisa menjalankan:
```bash
docker-compose exec postgres pg_dumpall -c -U lemmy > lemmy_dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql
```
### Contoh skrip pencadangan
```bash
@ -73,5 +74,3 @@ update community set shared_inbox_url = replace (shared_inbox_url, 'old_domain',
## Lihat juga
- https://stackoverflow.com/questions/24718706/backup-restore-a-dockerized-postgresql-database

View file

@ -27,6 +27,7 @@ Untuk mencoba bahwa federasi peladen Anda bekerja dengan benar, jalankan `curl -
## Penyertaan pada daftar peladen di join-lemmy.org
Untuk dimasukkan pada daftar peladen Lemmy di [join-lemmy.org](https://join-lemmy.org/instances), Anda harus memenuhi persyaratan berikut:
- [x] Terfederasi dengan paling tidak satu peladen dari daftar
- [x] Mempunyai deskripsi dan ikon situs
- [x] Bersabar dan menunggu situs untuk diperbarui, tidak ada jadwal pasti untuk itu
@ -36,6 +37,7 @@ Sementara menunggu, Anda selalu bisa mempromosikan peladen Anda di jejaring sosi
## Selalu terkini
Anda bisa berlangganan ke umpan RSS GitHub untuk diinformasikan tentang rilis terbaru:
- [lemmy](https://github.com/LemmyNet/lemmy/releases.atom)
- [lemmy-ui](https://github.com/LemmyNet/lemmy-ui/releases.atom)
- [lemmy-js-client](https://github.com/LemmyNet/lemmy-js-client/releases.atom)

View file

@ -11,6 +11,7 @@ Instruksi ini ditulis untuk Ubuntu 20.04.
Karena dibuat dari sumber, jadi mungkin akan memakan waktu yang lama, terutama pada perangkat yang lambat. Contohnya, Lemmy v0.12.2 membutuhkan 17 menit untuk dibangun pada VPS inti ganda. Jika Anda lebih suka binari sudah siap, gunakan Docker.
Susun dan pasang Lemmy, siapkan basis data:
```bash
apt install pkg-config libssl-dev libpq-dev cargo postgresql
# pasang rilis terbaru, anda juga bisa menspesifikkannya dengan --version
@ -25,6 +26,7 @@ adduser lemmy --system --disabled-login --no-create-home --group
```
Konfigurasi minimal Lemmy, taruh ini di `/etc/lemmy/lemmy.hjson` (lihat di [sini](https://github.com/LemmyNet/lemmy/blob/main/config/config.hjson) untuk pilihan konfigurasi lebih banyak). Jalankan `chown lemmy:lemmy /etc/lemmy/ -R` untuk mengatur pemilik yang benar.
```hjson
{
database: {
@ -40,6 +42,7 @@ Konfigurasi minimal Lemmy, taruh ini di `/etc/lemmy/lemmy.hjson` (lihat di [sini
```
Berkas unit systemd, sehingga Lemmy bisa secara otomatis dimulai dan diberhentikan, log dikelola lewat journalctl dll. Taruh berkas ini ke /etc/systemd/system/lemmy.service, kemudian jalankan `systemctl enable lemmy` dan `systemctl start lemmy`.
```
[Unit]
Description=Lemmy - A link aggregator for the fediverse
@ -66,6 +69,7 @@ Jika Anda melakukan semuanya dengan benar, log Lemmy dari `journalctl -u lemmy`
### Pasang lemmy-ui (antarmuka web)
Pasang dependensi (nodejs dan yarn di repositori Ubuntu 20.04 terlalu tua)
```bash
# https://classic.yarnpkg.com/en/docs/install/#debian-stable
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
@ -76,6 +80,7 @@ sudo apt install nodejs yarn
```
Klon repositori git, checkout versi yang Anda inginkan (dalam contoh ini adalah 0.12.2) dan susun itu.
```bash
mkdir /var/lib/lemmy-ui
cd /var/lib/lemmy-ui
@ -90,6 +95,7 @@ exit
```
Tambahkan berkas unit systemd yang lain, kali ini untuk lemmy-ui. Anda perlu mengganti example.com dengan domain Anda. Taruh berkas di `/etc/systemd/system/lemmy-ui.service`, kemudian jalankan `systemctl enable lemmy-ui` dan `systemctl start lemmy-ui`.
```
[Unit]
Description=Lemmy UI - Web frontend for Lemmy
@ -119,21 +125,25 @@ Jika semuanya benar, perintah `curl -I localhost:1234` seharusnya menampilkan `2
### Mengonfigurasi proksi-balik dan TLS
Pasang dependensi
```bash
apt install nginx certbot python3-certbot-nginx
```
Minta sertifikat TLS Let's Encrypt (ikuti saja instruksinya)
```bash
certbot certonly --nginx
```
Sertifikat Let's Encrypt akan diperbarui secara otomatis, jadi tambahkan baris di bawah ini ke crontab Anda, dengan menjalankan `sudo crontab -e`. Ganti example.com dengan domain Anda.
```
@daily certbot certonly --nginx --cert-name example.com -d example.com --deploy-hook 'nginx -s reload'
```
Akhirnya, tambahkan konfigurasi nginx. Setelah mengunduh, Anda perlu mengubah beberapa variabel di berkas.
```bash
curl https://raw.githubusercontent.com/LemmyNet/lemmy-ansible/main/templates/nginx.conf \
--output /etc/nginx/sites-enabled/lemmy.conf
@ -168,6 +178,7 @@ chown pictrs:pictrs /var/lib/pictrs
```
Pict-rs memerlukan perintah `magick` yang ada di ImageMagick versi 7, tapi Ubuntu 20.04 hanya ada ImageMagick 6. Jadi Anda harus memasangnya secara manual, seperti lewat [situs web resmi](https://imagemagick.org/script/download.php#linux).
```
wget https://download.imagemagick.org/ImageMagick/download/binaries/magick
# bandingkan hash dengan "message digest" di halaman resmi yang ditautkan di atas
@ -177,6 +188,7 @@ chmod 755 /usr/bin/magick
```
Seperti sebelumnya, letakkan konfigurasi di bawah ini ke `/etc/systemd/system/pictrs.service`, kemudian jalankan `systemctl enable pictrs` dan `systemctl start pictrs`.
```
[Unit]
Description=pict-rs - A simple image host

View file

@ -8,20 +8,20 @@ Ini mengadung definisi infrastruktur yang diperlukan untuk memasang [Lemmy](http
### Termasuk:
* Kluster fargate ECS
* Lemmy-UI
* Lemmy
* Pictrs
* CDN CloudFront
* Penyimpanan EFS untuk pengunggahan gambar
* Basis Data Postgres Aurora Tanpa Peladen
* Hos VPC Bastion
* Penyeimbang beban untuk Lemmy
* Rekaman DNS untuk situs Anda
- Kluster fargate ECS
- Lemmy-UI
- Lemmy
- Pictrs
- CDN CloudFront
- Penyimpanan EFS untuk pengunggahan gambar
- Basis Data Postgres Aurora Tanpa Peladen
- Hos VPC Bastion
- Penyeimbang beban untuk Lemmy
- Rekaman DNS untuk situs Anda
## Mulai cepat
Klon [Lemmy-CDK]( https://github.com/jetbridge/lemmy-cdk).
Klon [Lemmy-CDK](https://github.com/jetbridge/lemmy-cdk).
Klon [Lemmy](https://github.com/LemmyNet/lemmy) dan [Lemmy-UI](https://github.com/LemmyNet/lemmy-ui) ke direktori di atas ini.
@ -40,13 +40,14 @@ cdk deploy
```
## Harga
Ini *bukan* cara termurah untuk menjalankan Lemmy. Basis Data Aurora Tanpa Peladen bisa membebani Anda ~$90/bulan jika tidak pergi tidur.
Ini _bukan_ cara termurah untuk menjalankan Lemmy. Basis Data Aurora Tanpa Peladen bisa membebani Anda ~$90/bulan jika tidak pergi tidur.
## Perintah CDK yang Berguna
* `npm run build` susun typescript ke js
* `npm run watch` lacak perubahan dan susun
* `npm run test` laksanakan uji unit jest
* `cdk deploy` jalankan tumpukan (stack) ini ke akun/wilayah AWS baku Anda
* `cdk diff` bandingkan tumpukan yang jalan dengan kondisi saat ini
* `cdk synth` memancarkan templat CloudFormation yang disintesis
- `npm run build` susun typescript ke js
- `npm run watch` lacak perubahan dan susun
- `npm run test` laksanakan uji unit jest
- `cdk deploy` jalankan tumpukan (stack) ini ke akun/wilayah AWS baku Anda
- `cdk diff` bandingkan tumpukan yang jalan dengan kondisi saat ini
- `cdk synth` memancarkan templat CloudFormation yang disintesis

View file

@ -39,6 +39,7 @@ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
### Peladen lain tidak bisa mengambil konten lokal (komunitas, pos, dll.)
Proksi-balik Anda (mis. nginx) perlu meneruskan permintaan dengan tajuk `Accept: application/activity+json` ke bagian-belakang. Itu ditangani oleh baris berikut:
```
set $proxpass "http://0.0.0.0:{{ lemmy_ui_port }}";
if ($http_accept = "application/activity+json") {
@ -51,12 +52,14 @@ proxy_pass $proxpass;
```
Anda bisa memeriksa bahwa itu bekerja dengan benar dengan menjalankan perintah berikut, semuanya seharusnya mengembalikan JSON yang valid:
```
curl -H "Accept: application/activity+json" https://your-instance.com/u/some-local-user
curl -H "Accept: application/activity+json" https://your-instance.com/c/some-local-community
curl -H "Accept: application/activity+json" https://your-instance.com/post/123 # id dari sebuah pos lokal
curl -H "Accept: application/activity+json" https://your-instance.com/comment/123 # id dari sebuah komentar lokal
```
### Mengambil konten jarak jauh bekerja, tapi mengepos/berkomentar di komunitas jarak jauh gagal
Periksa bahwa [federasi dibolehkan pada kedua belah peladen](../federation/administration.md#instance-allowlist-and-blocklist).

View file

@ -45,17 +45,17 @@ Lemmy melakukan pembatasan untuk banyak tindakan berdasarkan IP klien. Tetapi, j
Berikut adalah contoh potongan untuk NodeJS:
```javascript
function setForwardedHeaders(
headers: IncomingHttpHeaders
): { [key: string]: string } {
function setForwardedHeaders(headers: IncomingHttpHeaders): {
[key: string]: string,
} {
let out = {
host: headers.host,
};
if (headers['x-real-ip']) {
out['x-real-ip'] = headers['x-real-ip'];
if (headers["x-real-ip"]) {
out["x-real-ip"] = headers["x-real-ip"];
}
if (headers['x-forwarded-for']) {
out['x-forwarded-for'] = headers['x-forwarded-for'];
if (headers["x-forwarded-for"]) {
out["x-forwarded-for"] = headers["x-forwarded-for"];
}
return out;

View file

@ -6,11 +6,11 @@ Dokumen ini mengandung ekstra yang tidak ada di [dokumentasi API](/api).
- [Contoh Curl](#contoh-curl)
- [Fitur khusus API HTTP](#fitur-khusus-api-http)
* [Umpan RSS/Atom](#umpan-rssatom)
* [Gambar](#gambar)
+ [Buat (permintaan)](#buat-permintaan)
+ [Buat (respons)](#buat-respons)
+ [Hapus](#hapus)
- [Umpan RSS/Atom](#umpan-rssatom)
- [Gambar](#gambar)
- [Buat (permintaan)](#buat-permintaan)
- [Buat (respons)](#buat-respons)
- [Hapus](#hapus)
<!-- tocstop -->
@ -55,7 +55,7 @@ Lemmy meneruskan permintaan gambar ke Pictrs yang berjalan di lokal.
`GET /pictrs/image/{filename}?format={webp, jpg, ...}&thumbnail={96}`
*Format dan keluku opsional.*
_Format dan keluku opsional._
#### Buat (Permintaan)

View file

@ -12,7 +12,6 @@ Informasi tentang berkontribusi ke Lemmy, entah itu penerjemahan, menguji, pende
Periksa [Weblate Lemmy](https://weblate.yerbamate.ml/projects/lemmy/) untuk penerjemahan. Anda bisa juga membantu dengan [menerjemahkan dokumentasi ini](https://github.com/LemmyNet/lemmy-docs#adding-a-new-language).
## Arsitektur
### Antarmuka

View file

@ -1,6 +1,7 @@
# Pengembangan Docker
## Dependensi
### Distro berbasis Debian
```bash
@ -26,9 +27,10 @@ cd docker/dev
dan pergi ke http://localhost:1236
*Catatan: banyak fitur (seperti dokumen dan gambar) tidak akan berfungsi tanpa menggunakan profil nginx seperti itu di `ansible/templates/nginx.conf`.
\*Catatan: banyak fitur (seperti dokumen dan gambar) tidak akan berfungsi tanpa menggunakan profil nginx seperti itu di `ansible/templates/nginx.conf`.
Untuk mempercepat pengompilasian Docker, tambahkan yang di bawah ini ke `/etc/docker/daemon.json` dan mulai ulang Docker.
```
{
"features": {

View file

@ -11,17 +11,18 @@ cd docker/federation
Pengujian federasi membangun lima peladen:
Peladen | Nama Pengguna | Lokasi | Catatan
--- | --- | --- | ---
lemmy-alpha | lemmy_alpha | [127.0.0.1:8540](http://127.0.0.1:8540) | terfederasi dengan seluruh peladen lainnya
lemmy-beta | lemmy_beta | [127.0.0.1:8550](http://127.0.0.1:8550) | terfederasi dengan seluruh peladen lainnya
lemmy-gamma | lemmy_gamma | [127.0.0.1:8560](http://127.0.0.1:8560) | terfederasi dengan seluruh peladen lainnya
lemmy-delta | lemmy_delta | [127.0.0.1:8570](http://127.0.0.1:8570) | hanya memperbolehkan federasi dengan lemmy-beta
lemmy-epsilon | lemmy_epsilon | [127.0.0.1:8580](http://127.0.0.1:8580) | menggunakan daftar-hitam, memblokir lemmy-alpha
| Peladen | Nama Pengguna | Lokasi | Catatan |
| ------------- | ------------- | --------------------------------------- | ----------------------------------------------- |
| lemmy-alpha | lemmy_alpha | [127.0.0.1:8540](http://127.0.0.1:8540) | terfederasi dengan seluruh peladen lainnya |
| lemmy-beta | lemmy_beta | [127.0.0.1:8550](http://127.0.0.1:8550) | terfederasi dengan seluruh peladen lainnya |
| lemmy-gamma | lemmy_gamma | [127.0.0.1:8560](http://127.0.0.1:8560) | terfederasi dengan seluruh peladen lainnya |
| lemmy-delta | lemmy_delta | [127.0.0.1:8570](http://127.0.0.1:8570) | hanya memperbolehkan federasi dengan lemmy-beta |
| lemmy-epsilon | lemmy_epsilon | [127.0.0.1:8580](http://127.0.0.1:8580) | menggunakan daftar-hitam, memblokir lemmy-alpha |
Anda bisa masuk ke setiap itu dengan nama peladen dan `lemmy` sebagai kata sandinya, misal (`lemmy_alpha`, `lemmy`).
Untuk memulai federasi antar peladen, kunjungi salah satu dari itu dan cari satu pengguna, komunitas, atau pos, seperti ini. Mohon dicatat bahwa bagian-belakang Lemmy berjalan di porta yang berbeda dari antarmuka, jadi Anda harus menambahkan angka porta di bilah URL dengan satu.
- `!main@lemmy-alpha:8541`
- `http://lemmy-beta:8551/post/3`
- `@lemmy-gamma@lemmy-gamma:8561`
@ -48,4 +49,4 @@ sudo docker-compose up -d
- check_is_apub_valid : Memastikan bahwa itu ada di daftar peladen yang diperbolehkan
- Pemeriksaan tingkat rendah : Untuk memastikan bahwa pengguna bisa membuat/memperbarui/menghapus pos di peladen yang sama dengan pos tersebut
Untuk poin terakhir, harap dicatat bahwa kita *tidak* memeriksa apakah aktor yang mengirimkan aktifitas membuat sebuah pos sebenarnya sama dengan pembuat pos, atau pengguna yang menghapus pos merupakan moderator/admin. Hal tersebut diperiksa oleh kode API, dan merupakan tanggung jawab setiap peladen untuk memeriksa izin pengguna. Ini tidak meninggalkan vektor serangan apa pun, karena sebagai pengguna peladen normal tidak bisa melakukan aksi yang melanggar peraturan API. Satu-satunya yang bisa melakukannya adalah admin (dan perangkat lunak yang digunakan oleh admin). Tapi admin bisa melakukan apa pun di peladen, termasuk mengirim aktifitas dari akun pengguna lainnya. Jadi kita tidak akan mendapatkan keamanan apa pun dengan memeriksa izin mod dan serupa.
Untuk poin terakhir, harap dicatat bahwa kita _tidak_ memeriksa apakah aktor yang mengirimkan aktifitas membuat sebuah pos sebenarnya sama dengan pembuat pos, atau pengguna yang menghapus pos merupakan moderator/admin. Hal tersebut diperiksa oleh kode API, dan merupakan tanggung jawab setiap peladen untuk memeriksa izin pengguna. Ini tidak meninggalkan vektor serangan apa pun, karena sebagai pengguna peladen normal tidak bisa melakukan aksi yang melanggar peraturan API. Satu-satunya yang bisa melakukannya adalah admin (dan perangkat lunak yang digunakan oleh admin). Tapi admin bisa melakukan apa pun di peladen, termasuk mengirim aktifitas dari akun pengguna lainnya. Jadi kita tidak akan mendapatkan keamanan apa pun dengan memeriksa izin mod dan serupa.

View file

@ -1,9 +1,11 @@
# Pengembangan Lokal
### Pasang persyaratan penyusunan
Pasang Rust menggunakan [opsi yang direkomendasikan di rust-lang.org](https://www.rust-lang.org/tools/install) (rustup).
#### Distro berbasis Debian
```
sudo apt install git cargo libssl-dev pkg-config libpq-dev yarn curl gnupg2 espeak
# pasang yarn
@ -13,6 +15,7 @@ sudo apt update && sudo apt install yarn
```
#### Distro berbasis Arch
```
sudo pacman -S git cargo libssl-dev pkg-config libpq-dev yarn curl gnupg2 espeak
# pasang yarn (stabil)
@ -20,6 +23,7 @@ curl -o- -L https://yarnpkg.com/install.sh | bash
```
#### macOS
Pasang [Homebrew](https://brew.sh/) jika Anda belum memasangnya.
Terakhir, pasang Node dan Yarn.
@ -29,6 +33,7 @@ brew install node yarn
```
### Dapatkan kode sumber bagian-belakang
```
git clone https://github.com/LemmyNet/lemmy.git
# atau alternatif dari gitea
@ -36,18 +41,22 @@ git clone https://github.com/LemmyNet/lemmy.git
```
### Susun bagian-belakang (Rust)
```
cargo build
# untuk pengembangan, gunakan `cargo check`
```
### Dapatkan kode sumber antarmuka
```
git clone https://github.com/LemmyNet/lemmy-ui.git --recurse-submodules
```
### Siapkan PostgreSQL
#### Distro berbasis Debian
```
sudo apt install postgresql
sudo systemctl start postgresql
@ -59,6 +68,7 @@ export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
```
#### Distro berbasis Arch
```
sudo pacman -S postgresql
sudo systemctl start postgresql
@ -70,6 +80,7 @@ export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
```
#### macOS
```
brew install postgresql
brew services start postgresql
@ -82,6 +93,7 @@ export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
```
### Jalankan sebuah peladen pengembangan lokal
```
cd lemmy
cargo run

View file

@ -22,6 +22,7 @@ Pasang [dependensi pengembangan lokal](local_development.md) dan tambahkan baris
```
Kemudian gunakan skrip berikut untuk menjalankan pengujian:
```
cd api_tests
./run-federation-test.bash

View file

@ -10,42 +10,42 @@ Sebelum membaca bagian ini, coba lihat pada [Tinjauan Federasi](overview.md) kam
- [Context](#context)
- [Actors](#actors)
* [Community](#community)
* [User](#user)
- [Community](#community)
- [User](#user)
- [Objects](#objects)
* [Post](#post)
* [Comment](#comment)
* [Private Message](#private-message)
- [Post](#post)
- [Comment](#comment)
- [Private Message](#private-message)
- [Collections](#collections)
* [Community Outbox](#community-outbox)
* [Community Followers](#community-followers)
* [Community Moderators](#community-moderators)
* [User Outbox](#user-outbox)
- [Community Outbox](#community-outbox)
- [Community Followers](#community-followers)
- [Community Moderators](#community-moderators)
- [User Outbox](#user-outbox)
- [Activities](#activities)
* [User to Community](#user-to-community)
+ [Follow](#follow)
+ [Unfollow](#unfollow)
+ [Report Post or Comment](#report-post-or-comment)
* [Community to User](#community-to-user)
+ [Accept Follow](#accept-follow)
+ [Announce](#announce)
* [Announcable](#announcable)
+ [Create or Update Post](#create-or-update-post)
+ [Create or Update Comment](#create-or-update-comment)
+ [Like Post or Comment](#like-post-or-comment)
+ [Dislike Post or Comment](#dislike-post-or-comment)
+ [Undo Like or Dislike Post or Comment](#undo-like-or-dislike-post-or-comment)
+ [Delete Post or Comment](#delete-post-or-comment)
+ [Remove Post or Comment](#remove-post-or-comment)
+ [Undo Delete or Remove](#undo-delete-or-remove)
+ [Add Mod](#add-mod)
+ [Remove Mod](#remove-mod)
+ [Block User](#block-user)
+ [Undo Block User](#undo-block-user)
* [User to User](#user-to-user)
+ [Create or Update Private message](#create-or-update-private-message)
+ [Delete Private Message](#delete-private-message)
+ [Undo Delete Private Message](#undo-delete-private-message)
- [User to Community](#user-to-community)
- [Follow](#follow)
- [Unfollow](#unfollow)
- [Report Post or Comment](#report-post-or-comment)
- [Community to User](#community-to-user)
- [Accept Follow](#accept-follow)
- [Announce](#announce)
- [Announcable](#announcable)
- [Create or Update Post](#create-or-update-post)
- [Create or Update Comment](#create-or-update-comment)
- [Like Post or Comment](#like-post-or-comment)
- [Dislike Post or Comment](#dislike-post-or-comment)
- [Undo Like or Dislike Post or Comment](#undo-like-or-dislike-post-or-comment)
- [Delete Post or Comment](#delete-post-or-comment)
- [Remove Post or Comment](#remove-post-or-comment)
- [Undo Delete or Remove](#undo-delete-or-remove)
- [Add Mod](#add-mod)
- [Remove Mod](#remove-mod)
- [Block User](#block-user)
- [Undo Block User](#undo-block-user)
- [User to User](#user-to-user)
- [Create or Update Private message](#create-or-update-private-message)
- [Delete Private Message](#delete-private-message)
- [Undo Delete Private Message](#undo-delete-private-message)
<!-- tocstop -->
@ -72,7 +72,7 @@ Menerima aktivitas dari pengguna: `Follow`, `Undo/Follow`, `Create`, `Update`, `
```
| Nama Bidang | Deskripsi |
|---|---|
| ------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `preferredUsername` | Nama aktor |
| `name` | Judul komunitas |
| `sensitive` | True menunjukkan bahwa semua pos di komunitas adalah NSFW |
@ -103,7 +103,7 @@ Menerima dan mengirim aktivitas dari/ke pengguna lain: `Create/Note`, `Update/No
```
| Nama Bidang | Deskripsi |
|---|---|
| ------------------- | --------------------------------------------------------------------------- |
| `preferredUsername` | Nama aktor |
| `name` | Nama tampilan pengguna |
| `content` | Bio pengguna |
@ -128,7 +128,7 @@ Halaman dengan judul, dan opsional ada URL dan konten teks. URL biasanya merujuk
```
| Nama Bidang | Deskripsi |
|---|---|
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `attributedTo` | ID dari pengguna yang membuat pos tersebut |
| `to` | ID dari komunitas di mana pos tersebut dipos |
| `name` | Judul pos |
@ -150,7 +150,7 @@ Balasan kepada pos, atau balasan ke komentar lain. Hanya mengandung teks (termas
```
| Nama Bidang | Deskripsi |
|---|---|
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `attributedTo` | ID dari pengguna yang membuat pos |
| `to` | Komunitas di mana komentar tersebut dibuat |
| `content` | Teks komentar |
@ -167,7 +167,7 @@ Pesan langsung dari satu pengguna ke pengguna lain. Tidak bisa ada pengguna keti
```
| Nama Bidang | Deskripsi |
|---|---|
| -------------- | --------------------------------------------------------------------- |
| `attributedTo` | ID pengguna yang membuat pesan pribadi |
| `to` | ID penerima |
| `content` | Teks pesan pribadi |
@ -224,7 +224,6 @@ Ketika pengguna mengklik "Berhenti Berlangganan" di komunitas, aktivitas `Undo/F
{{#include ../../../include/crates/apub/assets/lemmy/activities/following/undo_follow.json}}
```
#### Lapor Pos atau Komentar
Melaporkan pos atau komentar sebagai pelanggaran peraturan, supaya admin/moderator bisa meninjaunya.

View file

@ -1,15 +1,14 @@
# Tinjauan Federasi
Dokumen ini untuk siapa saja yang ingin mengetahui bagaimana federasi Lemmy bekerja, tanpa terlalu teknis. Ini dimaksudkan untuk memberikan tinjauan umum tingkat tinggi terhadap federasi ActivityPub di Lemmy. Jika Anda mengimplementasikan ActivityPub sendiri dan ingin kompatibel dengan Lemmy, baca [Garis Besar API ActivityPub](contributing_apub_api_outline.md) kami.
## Konvensi dokumentasi
Untuk mempermudah, kadang kala Anda akan melihat sesuatu diformat seperti `Create/Note` atau `Delete/Event` atau `Undo/Follow`. Hal sebelum garis miring adalah Aktivitas dan setelahnya adalah Objek di dalam Aktivitas, di properti `object`. Jadi itu dibaca sebagai berikut:
* `Create/Note`: sebuah aktivitas `Create` yang mengandung `Note` di bidang `object`
* `Delete/Event`: sebuah aktivitas `Delete` yang mengandung `Event` di bidang `object`
* `Undo/Follow`: sebuah aktivitas `Undo` yang mengandung `Follow` di bidang `object`
- `Create/Note`: sebuah aktivitas `Create` yang mengandung `Note` di bidang `object`
- `Delete/Event`: sebuah aktivitas `Delete` yang mengandung `Event` di bidang `object`
- `Undo/Follow`: sebuah aktivitas `Undo` yang mengandung `Follow` di bidang `object`
Di Lemmy, kami menggunakan beberapa hal spesifik yang merujuk kepada item ActivityPub. Mereka sejatinya adalah implementasi kami terhadap konsep ActivityPub:
@ -20,9 +19,9 @@ Di Lemmy, kami menggunakan beberapa hal spesifik yang merujuk kepada item Activi
Dokumentasi ini memiliki tiga bagian utama:
* __Filosofi Federasi__ menjabarkan gambaran umum bagaimana ini ditujukan untuk federasi
* __Aktivitas Pengguna__ menjelaskan tindakan apa yang Pengguna bisa lakukan untuk berinteraksi
* __Aktivitas Komunitas__ menjelaskan apa yang Komunitas lakukan sebagai respons terhadap tindakan beberapa Pengguna
- **Filosofi Federasi** menjabarkan gambaran umum bagaimana ini ditujukan untuk federasi
- **Aktivitas Pengguna** menjelaskan tindakan apa yang Pengguna bisa lakukan untuk berinteraksi
- **Aktivitas Komunitas** menjelaskan apa yang Komunitas lakukan sebagai respons terhadap tindakan beberapa Pengguna
## Filosofi Federasi

View file

@ -7,7 +7,7 @@ Di Lemmy, **moderator** adalah seseorang yang mengelola dan punya hak terhadap s
Seorang **administrator** memiliki hak penuh terhadap seluruh apa yang ada di peladen, dan demikian juga terhadap seluruh komunitas.
| Aksi | Hasil | Tingkat izin |
| --- | --- | --- |
| -------------------- | ----------------------------------------------- | ------------ |
| kunci | Cegah membuat komentar baru di bawah sebuah pos | Moderator |
| tempel | Semat publikasi ke atas daftar komunitas | Moderator |
| hapus | Hapus pos | Moderator |

View file

@ -1,10 +1,10 @@
# Краткое изложение
- [О нас](about/about.md)
- [Возможности](about/features.md)
- [Цели](about/goals.md)
- [Посты и оценка комментариев](about/ranking.md)
- [Путеводитель](about/guide.md)
- [О нас](about/about.md)
- [Возможности](about/features.md)
- [Цели](about/goals.md)
- [Посты и оценка комментариев](about/ranking.md)
- [Путеводитель](about/guide.md)
- [Администрирование](administration/administration.md)
- [Установить с помощью Docker](administration/install_docker.md)
- [Установить с помощью Ansible](administration/install_ansible.md)

View file

@ -1,8 +1,8 @@
## О проекте
Главная страница|Пост
---|---
![main screen](main_screen.png)|![chat screen](chat_screen.png)
| Главная страница | Пост |
| ------------------------------- | ------------------------------- |
| ![main screen](main_screen.png) | ![chat screen](chat_screen.png) |
[Lemmy](https://github.com/LemmyNet/lemmy) это аналог таких сайтов как [Reddit](https://reddit.com), [Lobste.rs](https://lobste.rs), [Raddle](https://raddle.me), или [Hacker News](https://news.ycombinator.com/): вы подписываетесь на форумы, которые вас интересуют , размещаете ссылки и дискутируете, затем голосуете и комментируете их. Однако за кулисами всё совсем по-другому; любой может легко запустить сервер, и все эти серверы объединены (например электронная почта) и подключены к одной вселенной, именуемой [Федиверс](https://ru.wikipedia.org/wiki/Fediverse).
@ -12,7 +12,7 @@
Каждый сервер Lemmy может устанавливать свою собственную политику модерации; назначать администраторов всего сайта и модераторов сообщества для защиты от троллей и создания здоровой, нетоксичной среды, в которой каждый может чувствовать себя комфортно.
*Примечание: API-интерфейсы WebSocket и HTTP в настоящее время нестабильны*
_Примечание: API-интерфейсы WebSocket и HTTP в настоящее время нестабильны_
### Почему назвали Lemmy (рус.Лемми)??

View file

@ -18,7 +18,7 @@
- i18n / поддержка интернационализации.
- RSS / Atom ленты для `Все`, `Подписок`, `Входящих`, `Пользователь`, and `Сообщества`.
- Поддержка кросс-постинга.
- *Поиск похожих постов* при создании новых. Отлично подходит для вопросов / ответов сообществ.
- оиск похожих постов_ при создании новых. Отлично подходит для вопросов / ответов сообществ.
- Возможности модерации.
- Журналы (Логи) Публичной Модерации.
- Можно прикреплять посты в топ сообщества.

View file

@ -19,6 +19,7 @@
- Просмотр с мобильных устройств, разрешить переключаться между ними. По умолчанию?
# Источники / Потенциальные библиотеки
- [Diesel в Postgres типов даты (анг.язык)](https://kotiri.com/2018/01/31/postgresql-diesel-rust-types.html)
- [Примеры в diesel (анг.язык)](http://siciarz.net/24-days-rust-diesel/)
- [Рекурсивный запрос списка смежности для вложенных комментариев (анг.язык)](https://stackoverflow.com/questions/192220/what-is-the-most-efficient-elegant-way-to-parse-a-flat-table-into-a-tree/192462#192462)

View file

@ -8,16 +8,16 @@
## Сортировка
*Применяется как к сообщениям, так и к комментариям*
рименяется как к сообщениям, так и к комментариям_
Тип | Описание
--- | ---
Активность | Сортировка на основе оценки подсчёта баллов со времени последнего комментария
Популярные | Сортировка на основе оценки подсчёта баллов с даты создания поста.
Новые | Новинки.
Наиболее Комментируемые | Посты с наибольшим количеством комментариев.
Новые Комментарии | Посты снаибольшим колличеством комментариев, Т.е. сортировка в стиле форума.
Лучшие | С наивысшим количеством баллов заданный период времени.
| Тип | Описание |
| ----------------------- | ----------------------------------------------------------------------------- |
| Активность | Сортировка на основе оценки подсчёта баллов со времени последнего комментария |
| Популярные | Сортировка на основе оценки подсчёта баллов с даты создания поста. |
| Новые | Новинки. |
| Наиболее Комментируемые | Посты с наибольшим количеством комментариев. |
| Новые Комментарии | Посты снаибольшим колличеством комментариев, Т.е. сортировка в стиле форума. |
| Лучшие | С наивысшим количеством баллов заданный период времени. |
Детали можно посмотреть по ссылке [Посты и оценка комментариев в деталях](ranking.md).
@ -35,22 +35,22 @@
## Путеводитель по Markdown
Наберите | Или | … Получите
--- | --- | ---
\*Курсив\* | \_Курсив\_ | _Курсив_
\*\*Жирный\*\* | \_\_Жирный\_\_ | **Жирный шрифт**
\# Заголовок 1 | Заголовок 1 <br> ========= | <h4>Заголовок 1</h4>
\## Заголовок 2 | Заголовок 2 <br>--------- | <h5>Заголовок 2</h5>
\[Ссылка\](http://a.com) | \[Ссылка\]\[1\]<br><br>\[1\]: http://b.org | [Ссылка](https://commonmark.org/)
!\[Изображение\](http://url/a.png) | !\[Изображение\]\[1\]<br><br>\[1\]: http://url/b.jpg | ![Markdown](https://commonmark.org/help/images/favicon.png)
\> Цитата | | <blockquote>Цитата</blockquote>
\* Списки <br>\* Списки <br>\* Списки | \- Списки <br>\- Списки <br>\- Списки <br> | * Списки <br>* Списки <br>* Списки <br>
1\. Один <br>2\. Два <br>3\. Три | 1) Один<br>2) Два<br>3) Три | 1. Один<br>2. Два<br>3. Три
Подчёркивания <br>\--- | Подчёркивания<br>\*\*\* | Подчёркивания <br><hr>
\`Инлайн код\` с обратными кавычками | |`Инлайн код` с обратными кавычками
\`\`\`<br>\# блок кода <br>print '3 кавычки или'<br>отбить 'отступ 4 пробела' <br>\`\`\` | ····\# блок кода<br>····отбить '3 кавычки или'<br>····отбить 'отступ 4 пробела' | \# блок кода <br>print '3 кавычки или'<br>отбить 'отступ 4 пробела'
::: спрятать спойлер или материал nsfw<br>*внести сюда*<br>::: | | <details><summary> спрятанный или nsfw материал </summary><p><em>внести сюда</em></p></details>
~подстрочный~ текст | | Some <sub>подстрочный</sub> текст
^надстрочный^ текст | | Some <sup>надстрочный</sup> текст
| Наберите | Или | … Получите |
| ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| \*Курсив\* | \_Курсив\_ | _Курсив_ |
| \*\*Жирный\*\* | \_\_Жирный\_\_ | **Жирный шрифт** |
| \# Заголовок 1 | Заголовок 1 <br> ========= | <h4>Заголовок 1</h4> |
| \## Заголовок 2 | Заголовок 2 <br>--------- | <h5>Заголовок 2</h5> |
| \[Ссылка\](http://a.com) | \[Ссылка\]\[1\]<br><br>\[1\]: http://b.org | [Ссылка](https://commonmark.org/) |
| !\[Изображение\](http://url/a.png) | !\[Изображение\]\[1\]<br><br>\[1\]: http://url/b.jpg | ![Markdown](https://commonmark.org/help/images/favicon.png) |
| \> Цитата | | <blockquote>Цитата</blockquote> |
| \* Списки <br>\* Списки <br>\* Списки | \- Списки <br>\- Списки <br>\- Списки <br> | _ Списки <br>_ Списки <br>\* Списки <br> |
| 1\. Один <br>2\. Два <br>3\. Три | 1) Один<br>2) Два<br>3) Три | 1. Один<br>2. Два<br>3. Три |
| Подчёркивания <br>\--- | Подчёркивания<br>\*\*\* | Подчёркивания <br><hr> |
| \`Инлайн код\` с обратными кавычками | | `Инлайн код` с обратными кавычками |
| \`\`\`<br>\# блок кода <br>print '3 кавычки или'<br>отбить 'отступ 4 пробела' <br>\`\`\` | ····\# блок кода<br>····отбить '3 кавычки или'<br>····отбить 'отступ 4 пробела' | \# блок кода <br>print '3 кавычки или'<br>отбить 'отступ 4 пробела' |
| ::: спрятать спойлер или материал nsfw<br>_внести сюда_<br>::: | | <details><summary> спрятанный или nsfw материал </summary><p><em>внести сюда</em></p></details> |
| ~подстрочный~ текст | | Some <sub>подстрочный</sub> текст |
| ^надстрочный^ текст | | Some <sup>надстрочный</sup> текст |
[CommonMark Tutorial](https://commonmark.org/help/tutorial/)

View file

@ -27,6 +27,7 @@ Score = Upvotes - Downvotes
Time = time since submission (in hours)
Gravity = Decay gravity, 1.8 is default
```
- В Lemmy такой же алгоритм `Классификатор` как наверху, разделяя на два: `Активный`, и `Лучший`.
- `Активный` использует голосование за публикацию и время последнего комментария (ограничено двумя днями).
- `Лучший` использует голоса за публикацию и время опубликования.
@ -41,6 +42,6 @@ Gravity = Decay gravity, 1.8 is default
#### Подсчёты Активных Пользователей
Lemmy также показывает количество * активных пользователей * для вашего сайта и его сообществ. Они подсчитываются в течение последнего дня, недели, месяца и полугодия и кэшируются при запуске lemmy и каждый час.
Lemmy также показывает количество _ активных пользователей _ для вашего сайта и его сообществ. Они подсчитываются в течение последнего дня, недели, месяца и полугодия и кэшируются при запуске lemmy и каждый час.
Активный пользователь - это тот, кто опубликовал или прокомментировал на вашем инстансе или сообществе в течение последнего заданного периода времени. При подсчете сайтов учитываются только локальные пользователи. В подсчет сообщества включены федеративные пользователи.

View file

@ -11,6 +11,7 @@
```bash
docker-compose exec postgres pg_dumpall -c -U lemmy > lemmy_dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql
```
### Пример сценария резервного копирования
```bash

View file

@ -18,6 +18,7 @@ ansible-playbook lemmy.yml --become
```
Для обновления до новой версии, просто запустите следующее в локальном репозитарии Lemmy:
```bash
git pull origin main
cd ansible

View file

@ -52,12 +52,14 @@ proxy_pass $proxpass;
```
Вы можете проверить, что он работает правильно, выполнив следующие команды, все они должны возвращать действительный JSON:
```
curl -H "Accept: application/activity+json" https://your-instance.com/u/some-local-user
curl -H "Accept: application/activity+json" https://your-instance.com/c/some-local-community
curl -H "Accept: application/activity+json" https://your-instance.com/post/123 # the id of a local post
curl -H "Accept: application/activity+json" https://your-instance.com/comment/123 # the id of a local comment
```
### Получение удаленных объектов работает, но публикации/комментирование в удаленных сообществах не успешны.
Проверьте это [федерация разрешена в обоих случаях](../federation/administration.md#instance-allowlist-and-blocklist).

View file

@ -1,6 +1,7 @@
# Справочник по API
Lemmy имеет два взаимосвязанных API:
- [WebSocket (анг.язык)](https://join-lemmy.org/api/index.html)
- [HTTP (анг.язык)](http_api.md)
@ -10,8 +11,8 @@ Lemmy имеет два взаимосвязанных API:
- [Основное использование](#basic-usage)
- [Типы данных](#data-types)
* [Типы Lemmy](#lemmy-types)
* [Низкоуровневые типы](#lower-level-types)
- [Типы Lemmy](#lemmy-types)
- [Низкоуровневые типы](#lower-level-types)
- [Скоростные лимиты по умолчанию](#default-rate-limits)
<!-- tocstop -->
@ -31,8 +32,8 @@ Lemmy имеет два взаимосвязанных API:
### Низкоуровневые типы
- `?` обозначает параметр, который может быть опущен в запросах и отсутствовать в ответах. Это будет типа ***SomeType***.
- `[SomeType]` список, содержащий объекты типа ***SomeType***.
- `?` обозначает параметр, который может быть опущен в запросах и отсутствовать в ответах. Это будет типа **_SomeType_**.
- `[SomeType]` список, содержащий объекты типа **_SomeType_**.
- Времена и даты временной метки в строках [ISO 8601 (анг.язык)](https://en.wikipedia.org/wiki/ISO_8601) формата. Временные метки будут в формате UTC, ваш клиент должен выполнить преобразование UTC в локальный формат.
## Скоростные лимиты по умолчанию

View file

@ -1,2 +1,3 @@
# WebSocket API
[Lemmy WebSocket API 2.0 documentation](https://join-lemmy.org/api/index.html)

View file

@ -22,6 +22,7 @@ psql -U lemmy -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;"
```
Затем используйте следующий скрипт для запуска тестов:
```
cd api_tests
./run-federation-test.bash

View file

@ -25,4 +25,4 @@ Lemmy имеет две конфигурационных секции `разр
Мы рекомендуем поместить список доверенных экземпляров в `разрешённые инстансы`, и федерироваться только с ними. Обратите внимание, что обе стороны должны добавлять друг друга в свои `allowed_instances`, чтобы разрешить двустороннюю федерацию.
В качестве альтернативы, вы можете использовать чёрный список федераций. В этом случае, добавьте домен в ваш инстанс с которым вы *не* хотите федерироваться. Вы можете установить только один из «разрещённых_инстансов» и «блокированные_инстансов», так как установка обоих не имеет смысла.
В качестве альтернативы, вы можете использовать чёрный список федераций. В этом случае, добавьте домен в ваш инстанс с которым вы е_ хотите федерироваться. Вы можете установить только один из «разрещённых*инстансов» и «блокированные*инстансов», так как установка обоих не имеет смысла.

View file

@ -16,36 +16,36 @@ Lemmy также не очень гибкий, когда речь идет о
- [Аннотация](#аннотация)
- [Акторы](#Акторы)
* [Сообщество](#Сообщество)
+ [Исходящие Сообщения Сообщества](#Исходящие-Сообщения-Сообщества)
+ [Подписчики Сообщества](#Подписчики-Сообщества)
+ [Модераторы Сообщества](#Модераторы-Сообщества)
* [Пользователь](#Пользователь)
+ [Входящие Пользователя](#Входящие-Пользователя)
- [Сообщество](#Сообщество)
- [Исходящие Сообщения Сообщества](#Исходящие-Сообщения-Сообщества)
- [Подписчики Сообщества](#Подписчики-Сообщества)
- [Модераторы Сообщества](#Модераторы-Сообщества)
- [Пользователь](#Пользователь)
- [Входящие Пользователя](#Входящие-Пользователя)
- [Объект](#объект)
* [Пост](#пост)
* [Комментарий](#комментарий)
* [Личное сообщение](#личное-сообщение)
- [Пост](#пост)
- [Комментарий](#комментарий)
- [Личное сообщение](#личное-сообщение)
- [Виды активности](#виды-активности)
* [Пользователь в Сообществе](#пользователь-в-сообществе)
+ [Следовать](#следовать)
+ [Отписаться](#отписаться)
+ [Создать или Обновить Сообщение](#создать-или-обновить-сообщение)
+ [Создать или Обновить Комментарий](#создать-или-обновить-комментарий)
+ [Понравилось Сообщение или Комментарий](#понравилось-сообщение-или-комментарий)
+ [Сообщение или Комментарий не нравится](#сообщение-или-комментарий-не-нравится)
+ [Удалить Пост или Комментарий](#удалить-пост-или-комментарий)
+ [Убрать Пост или Комментарий](#remove-post-or-comment)
+ [Отмена](#отмена)
* [Сообщество для Пользователя](#сообщество-для-пользователя)
+ [Принятие Подписки ](#принятие-подписки )
+ [Публикация](#публикация)
+ [Убрать или Удалить Сообщество](#убрать-или-удалить-сообщество)
+ [Восстановить Убранное или Удалённое Сообщество](#восстановить-убранное-или-удалённое-сообщество)
* [От Пользователя к Пользователю](#от-пользователя-к-пользователю)
+ [Создать или Обновить личное сообщение](#создать-или-обновить-личное-сообщение)
+ [Удалить Личное Сообщение](#удалить-личное-сообщение)
+ [Отмена Удаления Личного Сообщения](#отмена-удаления-личного-сообщения)⏎
- [Пользователь в Сообществе](#пользователь-в-сообществе)
- [Следовать](#следовать)
- [Отписаться](#отписаться)
- [Создать или Обновить Сообщение](#создать-или-обновить-сообщение)
- [Создать или Обновить Комментарий](#создать-или-обновить-комментарий)
- [Понравилось Сообщение или Комментарий](#понравилось-сообщение-или-комментарий)
- [Сообщение или Комментарий не нравится](#сообщение-или-комментарий-не-нравится)
- [Удалить Пост или Комментарий](#удалить-пост-или-комментарий)
- [Убрать Пост или Комментарий](#remove-post-or-comment)
- [Отмена](#отмена)
- [Сообщество для Пользователя](#сообщество-для-пользователя)
- [Принятие Подписки ](#принятие-подписки)
- [Публикация](#публикация)
- [Убрать или Удалить Сообщество](#убрать-или-удалить-сообщество)
- [Восстановить Убранное или Удалённое Сообщество](#восстановить-убранное-или-удалённое-сообщество)
- [От Пользователя к Пользователю](#от-пользователя-к-пользователю)
- [Создать или Обновить личное сообщение](#создать-или-обновить-личное-сообщение)
- [Удалить Личное Сообщение](#удалить-личное-сообщение)
- [Отмена Удаления Личного Сообщения](#отмена-удаления-личного-сообщения)⏎
<!-- tocstop -->
@ -70,7 +70,8 @@ Lemmy также не очень гибкий, когда речь идет о
]
}
```
Аннотация одинакова для всех действий и объектов.
Аннотация одинакова для всех действий и объектов.
## Акторы
@ -122,7 +123,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `preferredUsername` | да | Имя актора |
| `name` | да | Название сообщества |
| `sensitive` | да | Правда указывает на то, что все сообщения в сообществе NSFW |
@ -228,7 +229,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ------------------- | ----------- | ---------------------------------------------------------------- |
| `preferredUsername` | да | Имя Актора |
| `name` | нет | Отображаемое имя пользователя |
| `content` | нет | БИО пользователя |
@ -291,7 +292,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ----------------- | ----------- | ------------------------------------------------------------------------------------------------------------------ |
| `attributedTo` | да | Идентификатор пользователя, который создал этот пост |
| `to` | да | Идентификатор сообщества, в котором оно было опубликовано |
| `name` | да | Заголовок сообщения |
@ -331,7 +332,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| -------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `attributedTo` | да | Идентификатор пользователя, создавшего комментарий |
| `to` | да | Сообщество, в котором был сделан комментарий |
| `content` | да | Текст комментария |
@ -362,7 +363,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| -------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `attributedTo` | Идентификатор пользователя, создавшего это личное сообщение |
| `to` | Идентификатор получателя |
| `content` | да | Текст личного сообщения |
@ -389,7 +390,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ---------- | ----------- | ------------------------------------------------- |
| `actor` | да | Пользователь, отправляющий запрос на отслеживание |
| `object` | да | Сообщество, за которым нужно следить |
@ -433,7 +434,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ---------- | ----------- | ---------------------------------- |
| `type` | да | либо `Create` или `Update` |
| `cc` | да | Сообщество, в котором пишется пост |
| `object` | да | Пост создается |
@ -463,7 +464,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ---------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `tag` | нет | Список пользователей, упомянутых в комментарии (например `@user@example.com`) |
| `cc` | да | Сообщество, в котором создается публикация, пользователь, которому отвечает (создатель родительской публикации / комментария), а также любые упомянутые пользователи |
| `object` | да | Создаваемый комментарий |
@ -487,7 +488,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ---------- | ----------- | ------------------------------------------------------------- |
| `cc` | да | Идентификатор сообщества, в котором размещён пост/комментарий |
| `object` | да | За публикацию или комментарий проголосовали |
@ -510,7 +511,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ---------- | ----------- | ------------------------------------------------------------- |
| `cc` | да | Идентификатор сообщества, в котором размещён пост/комментарий |
| `object` | да | За публикацию или комментарий проголосовали |
@ -533,7 +534,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ---------- | ----------- | ------------------------------------------------------------- |
| `cc` | да | Идентификатор сообщества, в котором размещён пост/комментарий |
| `object` | да | Идентификатор удаляемой записи или комментария |
@ -556,7 +557,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ---------- | ----------- | ------------------------------------------------------------- |
| `cc` | да | Идентификатор сообщества, в котором размещён пост/комментарий |
| `object` | да | Идентификатор удаляемой записи или комментария |
@ -579,7 +580,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ---------- | ----------- | -------------------------------------------------------------------------- |
| `object` | да | Любая `Like`, `Dislike`, `Delete` или `Remove` активности как описано выше |
#### Добавить Модератора
@ -619,6 +620,7 @@ Lemmy также не очень гибкий, когда речь идет о
"target": "https://enterprise.lemmy.ml/c/main/moderators"
}
```
### Сообщество для Пользователя
#### Принятие Подписки
@ -643,7 +645,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ---------- | ----------- | ------------------------------------------------- |
| `actor` | да | То же сообщество, что и в `Follow` активность |
| `to` | нет | Идентификатор пользователя, отправившего `Follow` |
| `object` | да | Ранее отправленные `Follow` активность |
@ -667,7 +669,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ---------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `object` | да | Любая из `Create`, `Update`, `Like`, `Dislike`, `Delete` `Remove` или `Undo` активности описанная в [Пользователь в Сообществе](#пользователь-в-сообществе) секции |
#### Убрать или Удалить Сообщество
@ -688,9 +690,8 @@ Lemmy также не очень гибкий, когда речь идет о
}
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ---------- | ----------- | -------------------------- |
| `type` | да | Либо `Remove` или `Delete` |
#### Восстановить Убранное или Удалённое Сообщество
@ -721,8 +722,9 @@ Lemmy также не очень гибкий, когда речь идет о
}
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ------------- | ----------- | -------------------------- |
| `object.type` | да | Либо `Remove` или `Delete` |
### От Пользователя к Пользователю
@ -743,7 +745,7 @@ Lemmy также не очень гибкий, когда речь идет о
```
| Имя в поле | Обязательно | Описание |
|---|---|---|
| ---------- | ----------- | ------------------------------------- |
| `type` | да | Либо `Create` или `Update` |
| `object` | да | [Личное сообщение](#личное-сообщение) |

View file

@ -6,9 +6,9 @@
Чтобы не усложнять, иногда вы можете увидеть вещи в формате `Create/Note` или `Delete/Event` или `Undo/Follow`. То, что перед косой чертой - это Activity, а то, что после косой черты - это объект внутри Activity в свойстве `object`. Итак, это следует читать следующим образом:
* `Create / Note`: действие` Create`, содержащее `Note` в поле` object`.
* `Delete / Event`: действие` Delete`, содержащее `Event` в поле` object`
* `Undo / Follow`: действие` Undo`, содержащее `Follow` в поле` object`
- `Create / Note`: действие` Create`, содержащее `Note` в поле` object`.
- `Delete / Event`: действие` Delete`, содержащее `Event` в поле` object`
- `Undo / Follow`: действие` Undo`, содержащее `Follow` в поле` object`
В Lemmy мы используем определенные термины для обозначения элементов ActivityPub. По сути, это наши конкретные реализации хорошо известных концепций ActivityPub:
@ -19,9 +19,9 @@
Этот документ состоит из трех основных разделов:
* __Философия федерации__ излагает общую модель того, как это должно быть федеративным
* __Действия пользователя__ описывает, какие действия может предпринять Пользователь для взаимодействия
* __Активность сообщества__ описывает, что Сообщество делает в ответ на определенные действия Пользователя.
- **Философия федерации** излагает общую модель того, как это должно быть федеративным
- **Действия пользователя** описывает, какие действия может предпринять Пользователь для взаимодействия
- **Активность сообщества** описывает, что Сообщество делает в ответ на определенные действия Пользователя.
## Философия федерации