Indonesian Additional Translation (#121)

* Revert "Small Fix"

This reverts commit debdfe4dc3d147594f6ed51c91821a39ad88b9a3.

* Lemmy Docs Translate
This commit is contained in:
I. Musthafa 2022-01-16 23:29:52 +07:00 committed by GitHub
parent 5cd028069b
commit 89d0402c54
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 122 additions and 133 deletions

View file

@ -16,7 +16,6 @@
- [Backup and Restore](administration/backup_and_restore.md) - [Backup and Restore](administration/backup_and_restore.md)
- [Federation](federation/federation.md) - [Federation](federation/federation.md)
- [Federation Overview](federation/overview.md) - [Federation Overview](federation/overview.md)
- [Administration](federation/administration.md)
- [Lemmy Protocol](federation/lemmy_protocol.md) - [Lemmy Protocol](federation/lemmy_protocol.md)
- [Client Development](client_development/client_development.md) - [Client Development](client_development/client_development.md)
- [HTTP API extras](client_development/http_api_extras.md) - [HTTP API extras](client_development/http_api_extras.md)

View file

@ -4,7 +4,7 @@ The Lemmy Protocol (or Lemmy Federation Protocol) is a subset of the [ActivityPu
This document is targeted at developers who are familiar with the ActivityPub and ActivityStreams protocols. It gives a detailed outline of the actors, objects and activities used by Lemmy. This document is targeted at developers who are familiar with the ActivityPub and ActivityStreams protocols. It gives a detailed outline of the actors, objects and activities used by Lemmy.
Before reading this, have a look at our [Federation Overview](overview.md) to get an idea how Lemmy federation works on a high level. Before reading this, have a look at our [Federation Overview](contributing_federation_overview.md) to get an idea how Lemmy federation works on a high level.
<!-- toc --> <!-- toc -->

View file

@ -2,11 +2,11 @@
- [Tentang](about/about.md) - [Tentang](about/about.md)
- [Fitur](about/features.md) - [Fitur](about/features.md)
- [Ranking Pos dan Komentar](about/ranking.md) - [Peringkat Pos dan Komentar](about/ranking.md)
- [Panduan](about/guide.md) - [Panduan](about/guide.md)
- [Administrasi](administration/administration.md) - [Administrasi](administration/administration.md)
- [Pasang menggunakan Docker](administration/install_docker.md) - [Pasang Menggunakan Docker](administration/install_docker.md)
- [Pasang menggunakan Ansible](administration/install_ansible.md) - [Pasang Menggunakan Ansible](administration/install_ansible.md)
- [Pasang dari Awal](administration/from_scratch.md) - [Pasang dari Awal](administration/from_scratch.md)
- [Pasang di AWS](administration/on_aws.md) - [Pasang di AWS](administration/on_aws.md)
- [Langkah Pertama](administration/first_steps.md) - [Langkah Pertama](administration/first_steps.md)

View file

@ -1,24 +1,24 @@
# Trending / Hot / Best Sorting algorithm # Algoritma Pengurutan Tren/Hangat/Terbaik
## Goals ## Tujuan
- During the day, new posts and comments should be near the top, so they can be voted on. - Saat hari pertama, pos dan komentar baru harus berada di atas, sehingga mereka bisa dipilih atas/bawah.
- After a day or so, the time factor should go away. - Setelah sekitar satu hari, faktor waktu akan hilang.
- Use a log scale, since votes tend to snowball, and so the first 10 votes are just as important as the next hundred. - Gunakan skala log, karena suara cenderung menggelinding, dan 10 suara pertama sama pentingnya dengan seratus berikutnya.
## Implementations ## Implementasi
### Reddit ### Reddit
Does not take the lifetime of the thread into account, [giving early comments an overwhelming advantage over later ones,](https://minimaxir.com/2016/11/first-comment/) with the effect being even worse in small communities. New comments pool at the bottom of the thread, effectively killing off discussion and making each thread a race to comment early. This lowers the quality of conversation and rewards comments that are repetitive and spammy. Tidak memperhitungkan masa hidup utas, [memberikan komentar awal keuntungan besar terhadap yang setelahnya](https://minimaxir.com/2016/11/first-comment/), berefek lebih buruk di komunitas kecil. Jajak komentar baru berada di bawah utas, secara efektif membunuh diskusi dan membuat setiap utas balapan untuk komentar lebih dulu. Ini menurunkan kualitas pembicaraan dan menghargai komentar yang repetitif dan spam.
### Hacker News ### Hacker News
While far superior to Reddit's implementation for its decay of scores over time, [Hacker News' ranking algorithm](https://medium.com/hacking-and-gonzo/how-hacker-news-ranking-algorithm-works-1d9b0cf2c08d) does not use a logarithmic scale for scores. Meskipun jauh lebih unggul daripada implementasi Reddit karena pembusukan skornya dari waktu ke waktu, [algoritma peringkat Hacker News](https://medium.com/hacking-and-gonzo/how-hacker-news-ranking-algorithm-works-1d9b0cf2c08d) tidak menggunakan skala logaritmik untuk skor.
### Lemmy ### Lemmy
Counterbalances the snowballing effect of votes over time with a logarithmic scale. Negates the inherent advantage of early comments while still ensuring that votes still matter in the long-term, not nuking older popular comments. Menyeimbangkan efek bola salju suara dari waktu ke waktu dengan skala logaritmik. Meniadakan keuntungan yang melekat dari komentar awal sambil tetap memastikan bahwa suara tetap penting dalam jangka panjang, tidak menghapus komentar populer yang lama.
``` ```
Rank = ScaleFactor * log(Max(1, 3 + Score)) / (Time + 2)^Gravity Rank = ScaleFactor * log(Max(1, 3 + Score)) / (Time + 2)^Gravity
@ -27,20 +27,20 @@ Score = Upvotes - Downvotes
Time = time since submission (in hours) Time = time since submission (in hours)
Gravity = Decay gravity, 1.8 is default Gravity = Decay gravity, 1.8 is default
``` ```
- Lemmy uses the same `Rank` algorithm above, in two sorts: `Active`, and `Hot`. - Lemmy menggunakan algoritma `Rank` yang sama di atas, dengan dua cara: `Active` dan `Hot`
- `Active` uses the post votes, and latest comment time (limited to two days). - `Active` menggunakan suara pos, dan waktu komentar terakhir (dibatasi hingga dua hari).
- `Hot` uses the post votes, and the post published time. - `Hot` menggunakan suara pos, dan waktu pos diterbitkan.
- Use Max(1, score) to make sure all comments are affected by time decay. - Menggunakan Max(1, score) untuk memastikan semua komentar terpengaruh pembusukan waktu.
- Add 3 to the score, so that everything that has less than 3 downvotes will seem new. Otherwise all new comments would stay at zero, near the bottom. - Tambahkan 3 ke skor, sehingga semua yang memiliki kurang dari 3 pilih bawah akan tampak baru. Atau tidak, semua komentar baru akan tetap nol, dekat di bawah.
- The sign and abs of the score are necessary for dealing with the log of negative scores. - Tanda dan abs skor diperlukan untuk menangani log skor negatif.
- A scale factor of 10k gets the rank in integer form. - Faktor skala 10 ribu menggenapkan peringkat dalam bentuk bilangan bulat.
A plot of rank over 24 hours, of scores of 1, 5, 10, 100, 1000, with a scale factor of 10k. Plot peringkat lebih dari 24 jam, dengan skor 1, 5, 10, 100, 1000, dengan faktor skala 10 ribu.
![](rank_algorithm.png) ![](rank_algorithm.png)
#### Active User counts #### Penghitungan Pengguna Aktif
Lemmy also shows counts of *active users* for your site, and its communities. These are counted within the last `day`, `week`, `month`, and `half year`, and are cached on starting up lemmy, and every hour. 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.
An active user is someone who has posted or commented on our instance or community within the last given time frame. For site counts, only local users are counted. For community counts, federated users are included. 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

@ -1,12 +1,12 @@
# From Scratch # Dari Awal
> ⚠️ **Disclaimer:** this installation method is not recommended by the Lemmy developers. If you have any problems, you need to solve them yourself or ask the respective authors. If you notice any Lemmy bugs on an instance installed like this, please mention it in the bug report. > ⚠️ **Peringatan:** metode pemasangan ini tidak direkomendasikan oleh pengembang Lemmy. Jika Anda ada masalah, Anda harus menyelesaikannya sendiri atau tanya pembuat terkait. Jika Anda melihat ada galat di peladen yang dipasang menggunakan metode ini, harap sebutkan di laporan galat.
These instructions are written for Ubuntu 20.04. Instruksi ini ditulis untuk Ubuntu 20.04.
## Installation ## Pemasangan
### Lemmy Backend ### Bagian-Belakang Lemmy
It is built from source, so this may take a while, especially on slow devices. For example, Lemmy v0.12.2 takes 17 minutes to build on a dual core VPS. If you prefer prebuilt binaries, use Docker. It is built from source, so this may take a while, especially on slow devices. For example, Lemmy v0.12.2 takes 17 minutes to build on a dual core VPS. If you prefer prebuilt binaries, use Docker.

View file

@ -1,3 +1,3 @@
# Ansible Installation # Pemasangan Menggunakan Ansible
Follow the instructions on the [Lemmy-Ansible](https://github.com/LemmyNet/lemmy-ansible) repo. Ikuti instruksi di repositori [Lemmy-Ansible](https://github.com/LemmyNet/lemmy-ansible).

View file

@ -1,22 +1,22 @@
# Docker Installation # Pemasangan Menggunakan Docker
Make sure you have both docker and docker-compose(>=`1.24.0`) installed. On Ubuntu, just run `apt install docker-compose docker.io`. Next, Pastikan Anda sudah punya docker dan docker-compose(>=`1.24.0`) terpasang. Di Ubuntu, tinggal jalankan `apt install docker-compose docker.io`. Kemudian,
```bash ```bash
# create a folder for the lemmy files. the location doesnt matter, you can put this anywhere you want # buat sebuah folder untuk berkas lemmy. lokasinya tidak penting, bisa ditaruh dimana saja
mkdir /lemmy mkdir /lemmy
cd /lemmy cd /lemmy
# download default config files # unduh berkas konfigurasi baku
wget https://raw.githubusercontent.com/LemmyNet/lemmy/main/docker/prod/docker-compose.yml wget https://raw.githubusercontent.com/LemmyNet/lemmy/main/docker/prod/docker-compose.yml
wget https://raw.githubusercontent.com/LemmyNet/lemmy/main/docker/lemmy.hjson wget https://raw.githubusercontent.com/LemmyNet/lemmy/main/docker/lemmy.hjson
# Set correct permissions for pictrs folder # atur izin yang benar untuk folder pictrs
mkdir -p volumes/pictrs mkdir -p volumes/pictrs
sudo chown -R 991:991 volumes/pictrs sudo chown -R 991:991 volumes/pictrs
``` ```
Open up your `docker-compose.yml`, and make sure `LEMMY_EXTERNAL_HOST` for `lemmy-ui` is set to your correct host. Buka `docker-compose.yml` Anda dan pastikan `LEMMY_EXTERNAL_HOST` untuk `lemmy-ui` diatur ke hos yang benar Anda.
``` ```
- LEMMY_INTERNAL_HOST=lemmy:8536 - LEMMY_INTERNAL_HOST=lemmy:8536
@ -24,29 +24,29 @@ Open up your `docker-compose.yml`, and make sure `LEMMY_EXTERNAL_HOST` for `lemm
- LEMMY_HTTPS=false - LEMMY_HTTPS=false
``` ```
If you'd like a different database password, you should also change it in the `docker-compose.yml` **before** your first run. Jika Anda ingin kata sandi basis data yang berbeda, Anda harus menggantinya juga di `docker-compose.yml` **sebelum** pemulaian pertama Anda.
After this, have a look at the [config file](configuration.md) named `lemmy.hjson`, and adjust it, in particular the hostname, and possibly the db password. Then run: Setelah ini, coba lihat ke [berkas konfigurasi](configuration.md) bernama `lemmy.hjson` dan coba sesuaikan, khususnya nama hos dan mungkin kata sandi basis data. Kemudian jalankan:
`docker-compose up -d` `docker-compose up -d`
You can access the lemmy-ui at `http://localhost:1235` Anda bisa mengakses lemmy-ui di `http://localhost:1235`
To make Lemmy available outside the server, you need to setup a reverse proxy, like Nginx. [A sample nginx config](https://github.com/LemmyNet/lemmy-ansible/blob/main/templates/nginx.conf), could be setup with: Untuk membuat Lemmy tersedia di luar peladen, Anda perlu mengatur proksi balik, seperti Nginx. [Contoh konfigurasi nginx](https://github.com/LemmyNet/lemmy-ansible/blob/main/templates/nginx.conf), dapat disiapkan dengan:
```bash ```bash
wget https://raw.githubusercontent.com/LemmyNet/lemmy-ansible/main/templates/nginx.conf wget https://raw.githubusercontent.com/LemmyNet/lemmy-ansible/main/templates/nginx.conf
# Replace the {{ vars }} # ganti dengan {{ vars }}
# The default lemmy_port is 8536 # lemmy_port baku adalah 8536
# The default lemmy_ui_port is 1235 # lemmy_ui_port baku adalah 1235
sudo mv nginx.conf /etc/nginx/sites-enabled/lemmy.conf sudo mv nginx.conf /etc/nginx/sites-enabled/lemmy.conf
``` ```
You will also need to setup TLS, for example with [Let's Encrypt](https://letsencrypt.org/). After this you need to restart Nginx to reload the config. Anda juga harus menyiapkan TLS, seperti [Let's Encrypt](https://letsencrypt.org/). Setelah ini, Anda harus memulai ulang Nginx untuk memuat ulang konfigurasi.
## Updating ## Memperbarui
To update to the newest version, you can manually change the version in `docker-compose.yml`. Alternatively, fetch the latest version from our git repo: Untuk memperbarui ke versi terbaru, Anda bisa secara manual mengganti versi di `docker-compose.yml`. Atau, ambil versi terbaru dari repositori git kami:
```bash ```bash
wget https://raw.githubusercontent.com/LemmyNet/lemmy/main/docker/prod/docker-compose.yml wget https://raw.githubusercontent.com/LemmyNet/lemmy/main/docker/prod/docker-compose.yml

View file

@ -1,37 +1,36 @@
# Installing on AWS # Pemasangan di AWS
> ⚠️ **Disclaimer:** this installation method is not recommended by the Lemmy developers. If you have any problems, you need to solve them yourself or ask the respective authors. If you notice any Lemmy bugs on an instance installed like this, please mention it in the bug report. > ⚠️ **Peringatan:** metode pemasangan ini tidak direkomendasikan oleh pengembang Lemmy. Jika Anda ada masalah, Anda harus menyelesaikannya sendiri atau tanya pembuat terkait. Jika Anda melihat ada galat di peladen yang dipasang menggunakan metode ini, harap sebutkan di laporan galat.
## Lemmy AWS CDK ## CDK Lemmy AWS
This contains the necessary infrastructure definitions to deploy [Lemmy](https://github.com/LemmyNet/lemmy) Ini mengadung definisi infrastruktur yang diperlukan untuk memasang [Lemmy](https://github.com/LemmyNet/lemmy) ke AWS menggunakan [Kit Pengembangan Awan](https://docs.aws.amazon.com/cdk/latest/guide/home.html) mereka.
to AWS using their [Cloud Development Kit](https://docs.aws.amazon.com/cdk/latest/guide/home.html).
### Included: ### Termasuk:
* ECS fargate cluster * Kluster fargate ECS
* Lemmy-UI * Lemmy-UI
* Lemmy * Lemmy
* Pictrs * Pictrs
* CloudFront CDN * CDN CloudFront
* EFS storage for image uploads * Penyimpanan EFS untuk pengunggahan gambar
* Aurora Serverless Postgres DB * Basis Data Postgres Aurora Tanpa Peladen
* Bastion VPC host * Hos VPC Bastion
* Load balancers for Lemmy * Penyeimbang beban untuk Lemmy
* DNS records for your site * Rekaman DNS untuk situs Anda
## Quickstart ## Mulai cepat
Clone the [Lemmy-CDK]( https://github.com/jetbridge/lemmy-cdk). Klon [Lemmy-CDK]( https://github.com/jetbridge/lemmy-cdk).
Clone [Lemmy](https://github.com/LemmyNet/lemmy) and [Lemmy-UI](https://github.com/LemmyNet/lemmy-ui) to the directory above this. Klon [Lemmy](https://github.com/LemmyNet/lemmy) dan [Lemmy-UI](https://github.com/LemmyNet/lemmy-ui) ke direktori di atas ini.
```shell ```shell
cp example.env.local .env.local cp example.env.local .env.local
# edit .env.local # sunting .env.local
``` ```
You should edit .env.local with your site settings. Anda harus menyunting .env.local dengan pengaturan situs Anda.
```shell ```shell
npm install -g aws-cdk npm install -g aws-cdk
@ -40,14 +39,14 @@ cdk bootstrap
cdk deploy cdk deploy
``` ```
## Cost ## Harga
This is *not* the cheapest way to run Lemmy. The Serverless Aurora DB can run you ~$90/mo if it doesn't go to sleep. Ini *bukan* cara termurah untuk menjalankan Lemmy. Basis Data Aurora Tanpa Peladen bisa membebani Anda ~$90/bulan jika tidak pergi tidur.
## Useful CDK commands ## Perintah CDK yang Berguna
* `npm run build` compile typescript to js * `npm run build` susun typescript ke js
* `npm run watch` watch for changes and compile * `npm run watch` lacak perubahan dan susun
* `npm run test` perform the jest unit tests * `npm run test` laksanakan uji unit jest
* `cdk deploy` deploy this stack to your default AWS account/region * `cdk deploy` jalankan tumpukan (stack) ini ke akun/wilayah AWS baku Anda
* `cdk diff` compare deployed stack with current state * `cdk diff` bandingkan tumpukan yang jalan denga kondisi saat ini
* `cdk synth` emits the synthesized CloudFormation template * `cdk synth` memancarkan templat CloudFormation yang disintesis

View file

@ -33,8 +33,8 @@ Periksa [Weblate Lemmy](https://weblate.yerbamate.ml/projects/lemmy/) untuk pene
- `apub` - Konversi activitypub. - `apub` - Konversi activitypub.
- `websocket` - Membuat peladen websocket. - `websocket` - Membuat peladen websocket.
## Linting / Formatting ## Linting/Pemformatan
- Every front and back end commit is automatically formatted then linted using `husky`, and `lint-staged`. - Setiap pengodean antarmuka dan bagian-belakang secara otomatis diformat kemudian dilinting menggunakan `husky` dan `lint-staged`.
- Rust with `cargo fmt` and `cargo clippy`. - Rust dengan `cargo fmt` dan `cargo clippy`.
- Typescript with `prettier` and `eslint`. - Typescript dengan `prettier` dan `eslint`.

View file

@ -1,44 +1,40 @@
# Federation Development # Pengembangan Federasi
## Running locally ## Menjalankan secara lokal
Install the dependencies as described in [Docker development](docker_development.md). Then run the following Pasang dependensi yang dijelaskan di [pengembangan Docker](docker_development.md). Kemudian, jalankan berikut
```bash ```bash
cd docker/federation cd docker/federation
./start-local-instances.bash ./start-local-instances.bash
``` ```
The federation test sets up 5 instances: Pengujian federasi membangun lima peladen:
Instance | Username | Location | Notes Peladen | Nama Pengguna | Lokasi | Catatan
--- | --- | --- | --- --- | --- | --- | ---
lemmy-alpha | lemmy_alpha | [127.0.0.1:8540](http://127.0.0.1:8540) | federated with all other instances 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) | federated with all other instances 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) | federated with all other instances 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) | only allows federation with lemmy-beta 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) | uses blocklist, has lemmy-alpha blocked lemmy-epsilon | lemmy_epsilon | [127.0.0.1:8580](http://127.0.0.1:8580) | menggunakan daftar-hitam, memblokir lemmy-alpha
You can log into each using the instance name, and `lemmy` as the password, IE (`lemmy_alpha`, `lemmy`). Anda bisa masuk ke setiap itu dengan nama peladen dan `lemmy` sebagai kata sandinya, misal (`lemmy_alpha`, `lemmy`).
To start federation between instances, visit one of them and search for a user, community or post, like this. Note that 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 port yang berbeda dari antarmuka, jadi Anda harus menambahkan angka port di bilah URL dengan satu.
the Lemmy backend runs on a different port than the frontend, so you have to increment the port number from
the URL bar by one.
- `!main@lemmy-alpha:8541` - `!main@lemmy-alpha:8541`
- `http://lemmy-beta:8551/post/3` - `http://lemmy-beta:8551/post/3`
- `@lemmy-gamma@lemmy-gamma:8561` - `@lemmy-gamma@lemmy-gamma:8561`
Firefox containers are a good way to test them interacting. Kontainer Firefox merupakan cara terbaik untuk menguji interaksi mereka.
## Running on a server ## Jalankan di sebuah peladen
Note that federation is currently in alpha. **Only use it for testing**, not on any production server, and be aware that turning on federation may break your instance. **Gunakan hanya untuk pengujian**, tidak di peladen aktif, dan ketahuilah bahwa mengaktifkan federasi dapat merusak peladen Anda.
Follow the normal installation instructions, either with [Ansible](../administration/install_ansible.md) or Ikuti instruksi pemasangan normal, entah menggunakan [Ansible](../administration/install_ansible.md) atau [secara manual](../administration/install_docker.md). Kemudian, ganti baris `image: dessalines/lemmy:v0.x.x` di `/lemmy/docker-compose.yml` dengan `image: dessalines/lemmy:federation`. Tambah dan konfigurasi [blok federasi ini](https://github.com/lemmynet/lemmy/blob/main/config/config.hjson#L64) ke `lemmy.hjson` Anda.
[manually](../administration/install_docker.md). Then replace the line `image: dessalines/lemmy:v0.x.x` in
`/lemmy/docker-compose.yml` with `image: dessalines/lemmy:federation`. Add and configure [this federation block](https://github.com/lemmynet/lemmy/blob/main/config/config.hjson#L64) to your `lemmy.hjson`.
Afterwards, and whenever you want to update to the latest version, run these commands on the server: Setelah itu, dan kapan pun yang Anda inginkan untuk memperbarui ke versi terbaru, jalankan perintah ini di peladen:
``` ```
cd /lemmy/ cd /lemmy/
@ -46,15 +42,10 @@ sudo docker-compose pull
sudo docker-compose up -d sudo docker-compose up -d
``` ```
## Security Model ## Model Keamanan
- HTTP signature verify: This ensures that activity really comes from the activity that it claims - Verifikasi tanda digital HTTP : Ini menjamin bahwa aktifitas memang datang dari aktifitas yang diklaim
- check_is_apub_valid : Makes sure its in our allowed instances list - check_is_apub_valid : Memastikan bahwa itu ada di daftar peladen yang diperbolehkan Makes sure its in our allowed instances list
- Lower level checks: To make sure that the user that creates/updates/removes a post is actually on the same instance as that post - Pemeriksaan tingkat rendah : Untuk memastikan bahwa pengguna bisa membuat/memperbarui/menghapus pos di peladen yang sama dengan pos tersebut
For the last point, note that we are *not* checking whether the actor that sends the create activity for a post is 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.
actually identical to the post's creator, or that the user that removes a post is a mod/admin. These things are checked
by the API code, and its the responsibility of each instance to check user permissions. This does not leave any attack
vector, as a normal instance user cant do actions that violate the API rules. The only one who could do that is the
admin (and the software deployed by the admin). But the admin can do anything on the instance, including send activities
from other user accounts. So we wouldnt actually gain any security by checking mod permissions or similar.

View file

@ -6,7 +6,7 @@ Pasang Rust menggunakan [opsi yang direkomendasikan di rust-lang.org](https://ww
#### Distro berbasis Debian #### Distro berbasis Debian
``` ```
sudo apt install git cargo libssl-dev pkg-config libpq-dev yarn curl gnupg2 espeak sudo apt install git cargo libssl-dev pkg-config libpq-dev yarn curl gnupg2 espeak
# install yarn # pasang yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn sudo apt update && sudo apt install yarn
@ -15,7 +15,7 @@ sudo apt update && sudo apt install yarn
#### Distro berbasis Arch #### Distro berbasis Arch
``` ```
sudo pacman -S git cargo libssl-dev pkg-config libpq-dev yarn curl gnupg2 espeak sudo pacman -S git cargo libssl-dev pkg-config libpq-dev yarn curl gnupg2 espeak
# install yarn (stable) # pasang yarn (stabil)
curl -o- -L https://yarnpkg.com/install.sh | bash curl -o- -L https://yarnpkg.com/install.sh | bash
``` ```
@ -31,14 +31,14 @@ brew install node yarn
### Dapatkan kode sumber bagian-belakang ### Dapatkan kode sumber bagian-belakang
``` ```
git clone https://github.com/LemmyNet/lemmy.git git clone https://github.com/LemmyNet/lemmy.git
# or alternatively from gitea # atau alternatif dari gitea
# git clone https://yerbamate.ml/LemmyNet/lemmy.git # git clone https://yerbamate.ml/LemmyNet/lemmy.git
``` ```
### Susun bagian-belakang (Rust) ### Susun bagian-belakang (Rust)
``` ```
cargo build cargo build
# for development, use `cargo check` instead) # untuk pengembangan, gunakan `cargo check`
``` ```
### Dapatkan kode sumber antarmuka ### Dapatkan kode sumber antarmuka
@ -46,13 +46,13 @@ cargo build
git clone https://github.com/LemmyNet/lemmy-ui.git --recurse-submodules git clone https://github.com/LemmyNet/lemmy-ui.git --recurse-submodules
``` ```
### Siapkan postgresql ### Siapkan PostgreSQL
#### Distro berbasis Debian #### Distro berbasis Debian
``` ```
sudo apt install postgresql sudo apt install postgresql
sudo systemctl start postgresql sudo systemctl start postgresql
# Either execute db-init.sh, or manually initialize the postgres database: # jalankan db-init.sh, atau inisialisasi basis data postgres secara manual:
sudo -u postgres psql -c "create user lemmy with password 'password' superuser;" -U postgres sudo -u postgres psql -c "create user lemmy with password 'password' superuser;" -U postgres
sudo -u postgres psql -c 'create database lemmy with owner lemmy;' -U postgres sudo -u postgres psql -c 'create database lemmy with owner lemmy;' -U postgres
export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
@ -63,7 +63,7 @@ export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
sudo pacman -S postgresql sudo pacman -S postgresql
sudo systemctl start postgresql sudo systemctl start postgresql
# Either execute db-init.sh, or manually initialize the postgres database: # jalankan db-init.sh, atau inisialisasi basis data postgres secara manual:
sudo -u postgres psql -c "create user lemmy with password 'password' superuser;" -U postgres sudo -u postgres psql -c "create user lemmy with password 'password' superuser;" -U postgres
sudo -u postgres psql -c 'create database lemmy with owner lemmy;' -U postgres sudo -u postgres psql -c 'create database lemmy with owner lemmy;' -U postgres
export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy
@ -75,7 +75,7 @@ brew install postgresql
brew services start postgresql brew services start postgresql
/usr/local/opt/postgres/bin/createuser -s postgres /usr/local/opt/postgres/bin/createuser -s postgres
# Either execute db-init.sh, or manually initialize the postgres database: # jalankan db-init.sh, atau inisialisasi basis data postgres secara manual:
psql -c "create user lemmy with password 'password' superuser;" -U postgres psql -c "create user lemmy with password 'password' superuser;" -U postgres
psql -c 'create database lemmy with owner lemmy;' -U postgres psql -c 'create database lemmy with owner lemmy;' -U postgres
export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy

View file

@ -1,19 +1,19 @@
# Branching and Releases # Pencabangan dan Rilis
## Branches ## Cabang
In general, our handling of branches is the one described in [A stable mainline branching model for Git](https://www.bitsnbites.eu/a-stable-mainline-branching-model-for-git/). One difference is that we avoid rebase, and instead merge the base branch into the current working branch. This helps to avoid force pushes and conflicts. Secara umum, pengelolaan kami terhadap cabang seperti yang dijelaskan pada [A stable mainline branching model for Git (Model Pencabangan Jalur Utama yang Stabil untuk Git)](https://www.bitsnbites.eu/a-stable-mainline-branching-model-for-git/). Satu perbedaan adalah kami menghidari rebase dan gantinya gabung (merge) cabang dasar ke cabang aktif saat itu. Ini membantu menghindari dorong-paksa (force push) dan konflik.
## Releases ## Rilis
- For major release: make a new branch `release/v0.x` - Untuk rilis besar: buat sebuah cabang baru `release/v0.x`
- For minor release: cherry-pick desired changes onto `release/v0.x` branch - Untuk rilis kecil: cherry-pick perubahan yang dinginkan ke cabang `release/v0.x`
- Make a beta or release candidate version with `docker/prod/deploy.sh` - Buat sebuah beta atau versi kandidat rilis menggunakan `docker/prod/deploy.sh`
- Do the same for `lemmy-ui`: `./deploy.sh 0.x.0-rc-x` - Lakukan yang sama untuk `lemmy-ui`: `./deploy.sh 0.x.0-rc-x`
- Deploy to federation test instances - Terapkan ke peladen uji federasi
- Keeping one instance at the last stable version to test federation compatibility (automate this with ansible) - Menjaga satu peladen pada versi stabil terbaru untuk menguji kompatibilitas federasi (otomatisasi ini dengan Ansible)
- `ansible-playbook -i federation playbooks/site.yml --vault-password-file vault_pass -e rc_version=0.x.0-rc.x` - `ansible-playbook -i federation playbooks/site.yml --vault-password-file vault_pass -e rc_version=0.x.0-rc.x`
- Test that everything works as expected, make new beta/rc releases if needed - Uji coba bahwa seluruhnya bekerja sesuai yang diharapkan, buat rilis beta/rc baru jika dibutuhkan
- Deploy to lemmy.ml, to discover remaining problems - Terapkan ke lemmy.ml, untuk menemukan masalah yang tersisa
- If that went well, make the official `0.x.0` release with `docker/prod/deploy.sh` - Jika itu berjalan baik, buat rilis `0.x.0` yang resmi dengan `docker/prod/deploy.sh`
- Announce the release on Lemmy, Matrix, Mastodon - Mengumumkan rilis di Lemmy, Matrix, Mastodon

View file

@ -1,4 +1,4 @@
### Pengujian # Pengujian
#### Rust #### Rust